Thep Excel

DateTime.FromText

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

= DateTime.FromText(text as nullable text, optional options as any) as nullable datetime

By ThepExcel AI Agent
12 December 2025

Function Metrics


Popularity
6/10

Difficulty
3/10

Usefulness
6/10

Syntax & Arguments

= 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 (ภาษา/วัฒนธรรม) ได้

Examples

แปลงรูปแบบ ISO standard
DateTime.FromText("2010-12-31T01:30:25")
ข้อความในรูปแบบ ISO 8601 (yyyy-MM-dd'T'HH:mm:ss) จะแปลงโดยอัตโนมัติโดยไม่ต้องระบุ Format
Power Query Formula:

= DateTime.FromText("2010-12-31T01:30:25")

Result:

#datetime(2010, 12, 31, 1, 30, 25)

ใช้ Format และ Culture เฉพาะ
DateTime.FromText("30 Dez 2010 02:04:50.369730", [Format="dd MMM yyyy HH:mm:ss.ffffff", Culture="de-DE"])
ข้อความเป็นภาษาเยอรมัน (Dez = December) แปลงได้โดยระบุ Culture="de-DE" และ Format ที่ตรงกับรูปแบบข้อมูล
Power Query Formula:

= DateTime.FromText("30 Dez 2010 02:04:50.369730",
    [Format="dd MMM yyyy HH:mm:ss.ffffff", Culture="de-DE"])

Result:

#datetime(2010, 12, 30, 2, 4, 50.36973)

รูปแบบกะทัดรัดที่มี T และ Z
DateTime.FromText("2000-02-08T03:45:12Z", [Format="yyyy-MM-dd'T'HH:mm:ss'Z'", Culture="en-US"])
รูปแบบ compact ที่มีอักขระพิเศษ (T และ Z) สามารถแปลงได้โดยใช้ single quotes เพื่อแสดง literal characters
Power Query Formula:

= DateTime.FromText("2000-02-08T03:45:12Z",
    [Format="yyyy-MM-dd'T'HH:mm:ss'Z'", Culture="en-US"])

Result:

#datetime(2000, 2, 8, 3, 45, 12)

รูปแบบเปอร์เซ็นต์ (yyyyMMddTHHmmss)
DateTime.FromText("20101231T013000", [Format="yyyyMMdd'T'HHmmss", Culture="en-US"])
รูปแบบที่ไม่มีตัวคั่น สามารถแปลงได้ถ้าระบุ Format ที่ตรงกันในรูป yyyyMMddTHHmmss
Power Query Formula:

= DateTime.FromText("20101231T013000",
    [Format="yyyyMMdd'T'HHmmss", Culture="en-US"])

Result:

#datetime(2010, 12, 31, 1, 30, 0)

FAQs

ถ้าข้อความไม่ตรงกับ Format ที่ระบุจะเป็นอย่างไร

ฟังก์ชันจะส่งกลับ null (ไม่มีค่า) แต่ไม่ยุติการทำงาน ถ้าต้องการจับข้อผิดพลาด สามารถใช้ try-catch โดยห่อด้วย try DateTime.FromText(…) otherwise null

หากไม่ระบุ Format จะเกิดอะไร

Power Query จะพยายาม parse ตามรูปแบบมาตรฐานต่างๆ โดยอัตโนมัติ (best-effort parsing) เช่น ISO 8601, วัฒนธรรมปัจจุบัน เป็นต้น

ใช้ได้กับ Culture ภาษาไทยหรือไม่

ได้ แต่ต้องใช้รูปแบบและระบุ Culture=”th-TH” ให้ถูกต้อง เช่น “31/12/2010” สำหรับรูปแบบ dd/MM/yyyy

ความแตกต่างระหว่าง DateTime.FromText กับ Date.FromText คืออะไร

DateTime.FromText แปลงเป็น datetime (วันที่ + เวลา) ส่วน Date.FromText แปลงเป็น date (วันที่เท่านั้น) ไม่มีส่วนของเวลา

Resources & Related

Additional Notes

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” ครับ

Leave a Reply

Your email address will not be published. Required fields are marked *