DateTime.From แปลงค่าต่างๆ (Text, Date, Time, Number) ให้เป็นข้อมูลชนิด DateTime ด้วยการระบุค่าและรหัสภาษาทำให้สะดวกในการจัดการข้อมูลวันเวลาจากแหล่งต่างๆ
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| 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” (เยอรมัน) ใช้ระบุรูปแบบวันเวลาที่คาดหวัง |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
ฟังก์ชัน DateTime.From ใน Power Query M ใช้สำหรับแปลงค่าต่างๆ ให้เป็นข้อมูลชนิด DateTime (วันที่และเวลา)
เจ๋งตรงที่ DateTime.From รับค่าได้หลายชนิด – ไม่ว่าจะ Text, Date, Time, Number, หรือ DateTimeZone ก็แปลงเป็น DateTime ได้ทั้งหมด ผมชอบใช้ฟังก์ชันนี้เวลามี data source ที่บ้าน เอาวันเวลามาเป็นรูปแบบต่างๆ แล้วต้องแปลงให้เป็นแบบเดียวกัน
ส่วนตัวผม มักใช้กับ culture parameter เพื่อให้ Power Query เข้าใจรูปแบบข้อมูลภาษาต่างๆ เช่น “en-US” หรือ “th-TH” ทำให้แปลงข้อมูลถูกต้อง ขาดไม่ได้เวลาทำงานโปรเจกต์สากล 😎
แปลงข้อความเป็น DateTime ตามรูปแบบ ISO 8601 (YYYY-MM-DD HH:MM:SS)
แปลงวันที่เป็น DateTime โดยเวลาจะตั้งค่าเป็น 00:00:00 (เที่ยงคืน)
แปลงเวลาเป็น DateTime โดยใช้วันที่เริ่มต้นของ OLE Automation Date (30/12/1899)
แปลงตัวเลข OLE Automation Date เป็น DateTime (45291 = 1/1/2024 00:00:00)
แปลงข้อความตามรูปแบบไทย (DD/MM/YYYY HH:MM) โดยระบุ culture="th-TH"
ใช้ DateTime.From กับ Table.AddColumn เพื่อแปลงคอลัมน์ทั้งหมด
DateTime.FromText รับเฉพาะ Text input, DateTime.From รับ Text, Date, Time, Number, DateTimeZone ได้ทั้งหมด คือ DateTime.From ยืดหยุ่นมากกว่า
ผลลัพธ์จะเป็น null ด้วย ถ้าต้องการให้มีค่าเริ่มต้นให้ใช้ ?? operator เช่น DateTime.From([DateColumn]) ?? #datetime(1900, 1, 1, 0, 0, 0)
Power Query จะใช้ culture ของเครื่องที่รันอยู่ (system locale) ถ้าต้องให้ทำงานสอบ ที่ทุกเครื่องเหมือนกันแนะนำให้ระบุ culture เสมอ
ได้ DateTime.From(#datetimezone(2025, 12, 31, 14, 30, 0, 7, 0)) จะแปลงเป็น DateTime เวลาท้องถิ่น (local time)
จะ error: "Expression.Error: Could not convert to DateTime" วิธีแก้ คือ ทำความสะอาด Text ก่อนแปลง เช่น ลบ spaces หรือแปลงรูปแบบ
ฟังก์ชันที่ผู้เขียนโยงไว้กับ DateTime.From จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
ดึงเฉพาะส่วนวันที่ (Date) ออกจากค่า DateTime หรือ DateTimeZone โดยทิ้งเวลาไป
DateTime.FromText ใช้แปลงข้อความเป็นค่า datetime พร้อมรองรับรูปแบบและภาษาที่หลากหลาย
ฟังก์ชันที่ดึงเฉพาะส่วนเวลา (Time) ออกจากค่า DateTime เมื่อคุณต้องการแยกเวลาจากค่าวันที่และเวลารวมกัน
แปลงค่า DateTime เป็นข้อความ (Text) โดยสามารถกำหนดรูปแบบวันที่และเวลาตามต้องการได้
แปลงค่าเป็น DateTimeZone (วันที่, เวลา และ Timezone)
ลบข้อมูล Timezone ออก ให้เหลือแค่ DateTime
Date.FromText แปลงค่าข้อความให้เป็นค่าวันที่ รองรับการระบุรูปแบบวันที่และภาษาที่แตกต่างกัน ฟังก์ชันนี้จำเป็นสำหรับการอ่านข้อมูลวันที่จากแหล่งข้อมูลภายนอก การจัดการข้อมูลที่มีรูปแบบวันที่หลากหลาย และการทำให้ข้อมูลเป็นมาตรฐาน
Time.From แปลงค่าต่างๆ เช่น ข้อความ ตัวเลข DateTime เป็นค่าเวลา ฟังก์ชันนี้มีประโยชน์เมื่อต้องการแปลงข้อมูลเวลาจากรูปแบบข้อความหรือรูปแบบอื่นๆ มาเป็นค่าเวลาที่ถูกต้อง
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่