Thep Excel

DateTime.Fromแปลงค่าเป็น DateTime

DateTime.From แปลงค่าต่างๆ (Text, Date, Time, Number) ให้เป็นข้อมูลชนิด DateTime ด้วยการระบุค่าและรหัสภาษาทำให้สะดวกในการจัดการข้อมูลวันเวลาจากแหล่งต่างๆ

fx
=DateTime.From(value, [culture]) as nullable datetime

ความนิยม7/10
ความยาก3/10
ประโยชน์7/10

อัปเดต 3 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
value any ค่าที่ต้องการแปลง สามารถเป็น Text (“2025-12-31 14:30”), Date, Time, Number (OLE Automation Date), หรือ DateTimeZone
[culture]ไม่บังคับ text – รหัสภาษา/เขตหนึ่งฯ (culture code) เช่น “en-US” (อังกฤษ-สหรัฐ), “th-TH” (ไทย), “de-DE” (เยอรมัน) ใช้ระบุรูปแบบวันเวลาที่คาดหวัง

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

ฟังก์ชัน DateTime.From ใน Power Query M ใช้สำหรับแปลงค่าต่างๆ ให้เป็นข้อมูลชนิด DateTime (วันที่และเวลา)

เจ๋งตรงที่ DateTime.From รับค่าได้หลายชนิด – ไม่ว่าจะ Text, Date, Time, Number, หรือ DateTimeZone ก็แปลงเป็น DateTime ได้ทั้งหมด ผมชอบใช้ฟังก์ชันนี้เวลามี data source ที่บ้าน เอาวันเวลามาเป็นรูปแบบต่างๆ แล้วต้องแปลงให้เป็นแบบเดียวกัน

ส่วนตัวผม มักใช้กับ culture parameter เพื่อให้ Power Query เข้าใจรูปแบบข้อมูลภาษาต่างๆ เช่น “en-US” หรือ “th-TH” ทำให้แปลงข้อมูลถูกต้อง ขาดไม่ได้เวลาทำงานโปรเจกต์สากล 😎

Examples

แปลงจาก TextDateTime.From("2025-12-31 14:30:00")

แปลงข้อความเป็น DateTime ตามรูปแบบ ISO 8601 (YYYY-MM-DD HH:MM:SS)

fx
=DateTime.From("2025-12-31 14:30:00")

ผลลัพธ์#datetime(2025, 12, 31, 14, 30, 0)
แปลงจาก DateDateTime.From(#date(2025, 1, 1))

แปลงวันที่เป็น DateTime โดยเวลาจะตั้งค่าเป็น 00:00:00 (เที่ยงคืน)

fx
=DateTime.From(#date(2025, 1, 1))

ผลลัพธ์#datetime(2025, 1, 1, 0, 0, 0)
แปลงจาก TimeDateTime.From(#time(6, 45, 12))

แปลงเวลาเป็น DateTime โดยใช้วันที่เริ่มต้นของ OLE Automation Date (30/12/1899)

fx
=DateTime.From(#time(6, 45, 12))

ผลลัพธ์#datetime(1899, 12, 30, 6, 45, 12)
แปลงจาก Number (OLE Automation Date)DateTime.From(45291)

แปลงตัวเลข OLE Automation Date เป็น DateTime (45291 = 1/1/2024 00:00:00)

fx
=DateTime.From(45291)

ผลลัพธ์#datetime(2024, 1, 1, 0, 0, 0)
แปลงด้วย Culture ParameterDateTime.From("31/12/2025 14:30", "th-TH")

แปลงข้อความตามรูปแบบไทย (DD/MM/YYYY HH:MM) โดยระบุ culture="th-TH"

fx
=DateTime.From("31/12/2025 14:30", "th-TH")

ผลลัพธ์#datetime(2025, 12, 31, 14, 30, 0)
ใช้ใน Power Query Transformlet Source = Table.FromRows({{"2025-12-31 14:30:00"}, {"2025-01-15 09:15:00"}}, {"DateText"}), Converted = Table.AddColumn(Source, "DateTime", each DateTime.Fro…

ใช้ DateTime.From กับ Table.AddColumn เพื่อแปลงคอลัมน์ทั้งหมด

fx
let
Source = Table.FromRows({{"2025-12-31 14:30:00"}, {"2025-01-15 09:15:00"}}, {"DateText"}),
Converted = Table.AddColumn(Source, "DateTime", each DateTime.From([DateText]))
in
Converted

ผลลัพธ์ตารางมี 2 คอลัมน์: DateText (Text) และ DateTime (DateTime type)

FAQs

DateTime.From แตกต่างจาก DateTime.FromText อย่างไร+

DateTime.FromText รับเฉพาะ Text input, DateTime.From รับ Text, Date, Time, Number, DateTimeZone ได้ทั้งหมด คือ DateTime.From ยืดหยุ่นมากกว่า

ถ้า input เป็น null ผลลัพธ์จะเป็นอะไร+

ผลลัพธ์จะเป็น null ด้วย ถ้าต้องการให้มีค่าเริ่มต้นให้ใช้ ?? operator เช่น DateTime.From([DateColumn]) ?? #datetime(1900, 1, 1, 0, 0, 0)

culture parameter ไม่ได้ระบุ Power Query จะใช้ culture ไหน+

Power Query จะใช้ culture ของเครื่องที่รันอยู่ (system locale) ถ้าต้องให้ทำงานสอบ ที่ทุกเครื่องเหมือนกันแนะนำให้ระบุ culture เสมอ

แปลง DateTimeZone เป็น DateTime ได้ไหม+

ได้ DateTime.From(#datetimezone(2025, 12, 31, 14, 30, 0, 7, 0)) จะแปลงเป็น DateTime เวลาท้องถิ่น (local time)

ถ้า input Text มีรูปแบบที่ DateTime.From ไม่รู้จักจะเป็นอะไร+

จะ error: "Expression.Error: Could not convert to DateTime" วิธีแก้ คือ ทำความสะอาด Text ก่อนแปลง เช่น ลบ spaces หรือแปลงรูปแบบ

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ DateTime.From จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้DateTime.FromDateTime functions
DateTime functions (4)
DateTime.Date

ดึงเฉพาะส่วนวันที่ (Date) ออกจากค่า DateTime หรือ DateTimeZone โดยทิ้งเวลาไป

DateTime.FromText

DateTime.FromText ใช้แปลงข้อความเป็นค่า datetime พร้อมรองรับรูปแบบและภาษาที่หลากหลาย

DateTime.Time

ฟังก์ชันที่ดึงเฉพาะส่วนเวลา (Time) ออกจากค่า DateTime เมื่อคุณต้องการแยกเวลาจากค่าวันที่และเวลารวมกัน

DateTime.ToText

แปลงค่า DateTime เป็นข้อความ (Text) โดยสามารถกำหนดรูปแบบวันที่และเวลาตามต้องการได้

DateTimeZone functions (2)
DateTimeZone.From

แปลงค่าเป็น DateTimeZone (วันที่, เวลา และ Timezone)

DateTimeZone.RemoveZone

ลบข้อมูล Timezone ออก ให้เหลือแค่ DateTime

Date functions (1)
Date.FromText

Date.FromText แปลงค่าข้อความให้เป็นค่าวันที่ รองรับการระบุรูปแบบวันที่และภาษาที่แตกต่างกัน ฟังก์ชันนี้จำเป็นสำหรับการอ่านข้อมูลวันที่จากแหล่งข้อมูลภายนอก การจัดการข้อมูลที่มีรูปแบบวันที่หลากหลาย และการทำให้ข้อมูลเป็นมาตรฐาน

Time functions (1)
Time.From

Time.From แปลงค่าต่างๆ เช่น ข้อความ ตัวเลข DateTime เป็นค่าเวลา ฟังก์ชันนี้มีประโยชน์เมื่อต้องการแปลงข้อมูลเวลาจากรูปแบบข้อความหรือรูปแบบอื่นๆ มาเป็นค่าเวลาที่ถูกต้อง

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่