DateTime.FromText ใช้แปลงข้อความเป็นค่า datetime พร้อมรองรับรูปแบบและภาษาที่หลากหลาย
= DateTime.FromText(text as nullable text, optional options as any) as nullable datetime
= DateTime.FromText(text as nullable text, optional options as any) as nullable datetime
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| text | text | Yes | ข้อความที่ต้องการแปลงให้เป็น datetime (สามารถเป็น null ได้) | |
| options | record | Optional | null | Record ที่สามารถมี Format (รูปแบบเฉพาะ) และ Culture (ภาษา/วัฒนธรรม) ได้ |
DateTime.FromText("2010-12-31T01:30:25")= DateTime.FromText("2010-12-31T01:30:25")
#datetime(2010, 12, 31, 1, 30, 25)
DateTime.FromText("30 Dez 2010 02:04:50.369730", [Format="dd MMM yyyy HH:mm:ss.ffffff", Culture="de-DE"])= DateTime.FromText("30 Dez 2010 02:04:50.369730",
[Format="dd MMM yyyy HH:mm:ss.ffffff", Culture="de-DE"])
#datetime(2010, 12, 30, 2, 4, 50.36973)
DateTime.FromText("2000-02-08T03:45:12Z", [Format="yyyy-MM-dd'T'HH:mm:ss'Z'", Culture="en-US"])= DateTime.FromText("2000-02-08T03:45:12Z",
[Format="yyyy-MM-dd'T'HH:mm:ss'Z'", Culture="en-US"])
#datetime(2000, 2, 8, 3, 45, 12)
DateTime.FromText("20101231T013000", [Format="yyyyMMdd'T'HHmmss", Culture="en-US"])= DateTime.FromText("20101231T013000",
[Format="yyyyMMdd'T'HHmmss", Culture="en-US"])
#datetime(2010, 12, 31, 1, 30, 0)
ฟังก์ชันจะส่งกลับ null (ไม่มีค่า) แต่ไม่ยุติการทำงาน ถ้าต้องการจับข้อผิดพลาด สามารถใช้ try-catch โดยห่อด้วย try DateTime.FromText(…) otherwise null
Power Query จะพยายาม parse ตามรูปแบบมาตรฐานต่างๆ โดยอัตโนมัติ (best-effort parsing) เช่น ISO 8601, วัฒนธรรมปัจจุบัน เป็นต้น
ได้ แต่ต้องใช้รูปแบบและระบุ Culture=”th-TH” ให้ถูกต้อง เช่น “31/12/2010” สำหรับรูปแบบ dd/MM/yyyy
DateTime.FromText แปลงเป็น datetime (วันที่ + เวลา) ส่วน Date.FromText แปลงเป็น date (วันที่เท่านั้น) ไม่มีส่วนของเวลา
DateTime.FromText ใช้สำหรับแปลงข้อความ (text) ให้เป็นค่า datetime ที่ Power Query เข้าใจได้ ฟังก์ชันนี้มีประโยชน์เมื่อคุณนำเข้าข้อมูลวันเวลาจากแหล่งที่หลากหลาย เช่น API, CSV หรือ database ที่มีรูปแบบวันเวลาต่างๆ กัน
ที่เจ๋งคือมีพารามิเตอร์ options ที่อนุญาตให้คุณระบุรูปแบบวันเวลาแบบชัดเจน (Format) และภาษา/วัฒนธรรม (Culture) ด้วย ทำให้สามารถแยกวิเคราะห์วันที่เป็นภาษาต่างๆ ได้อย่างแม่นยำ เช่น “30 Dez 2010” (ภาษาเยอรมัน) หรือ “2010-12-31T01:30:25” (ISO standard)
ส่วนตัวผมมักใช้ DateTime.FromText คู่กับ Table.TransformColumns เมื่อต้องการแปลงคอลัมน์ข้อความให้เป็น datetime แบบเป็นระบบๆ และใช้พารามิเตอร์ Format เมื่อข้อมูลขาเข้ามาในรูปแบบพิเศษ เช่น “yyyyMMdd” หรือ “dd/MM/yyyy HH:mm:ss” ครับ