DateTimeZone.LocalNow ส่งกลับวันและเวลาปัจจุบันของระบบพร้อมข้อมูลเขตเวลาท้องถิ่น ใช้สำหรับสร้าง Timestamp ที่รับรู้เขตเวลา
=DateTimeZone.LocalNow()
=DateTimeZone.LocalNow()
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| none | none | Optional | ฟังก์ชันนี้ไม่ต้องการพารามิเตอร์ |
DateTimeZone.LocalNow()=DateTimeZone.LocalNow()
2025-12-26T14:35:00+07:00
let Source = Table.FromRows({{"ID", "Name"}, {1, "John"}, {2, "Jane"}}, {"ID", "Name"}), AddTimestamp = Table.AddColumn(Source, "ExtractedAt", each DateTimeZone…let
Source = Table.FromRows({{"ID", "Name"}, {1, "John"}, {2, "Jane"}}, {"ID", "Name"}),
AddTimestamp = Table.AddColumn(Source, "ExtractedAt", each DateTimeZone.LocalNow())
in
AddTimestamp
ตารางที่มีคอลัมน์ ID, Name, และ ExtractedAt ที่เก็บเวลาปัจจุบันตามเขตเวลาท้องถิ่น
let Local = DateTimeZone.LocalNow(), LocalDT = DateTime.LocalNow(), UTC = DateTimeZone.UtcNow() in {Local, LocalDT, UTC}let
Local = DateTimeZone.LocalNow(),
LocalDT = DateTime.LocalNow(),
UTC = DateTimeZone.UtcNow()
in
{Local, LocalDT, UTC}
{2025-12-26T14:35:00+07:00, 2025-12-26T14:35:00, 2025-12-26T07:35:00+00:00}
let Source = Table.FromRows({{"ID", "Date"}, {1, #date(2025, 12, 25)}, {2, #date(2025, 12, 26)}}, {"ID", "Date"}), CurrentDateTime = DateTimeZone.LocalNow(), Cu…let
Source = Table.FromRows({{"ID", "Date"}, {1, #date(2025, 12, 25)}, {2, #date(2025, 12, 26)}}, {"ID", "Date"}),
CurrentDateTime = DateTimeZone.LocalNow(),
CurrentDate = Date.From(CurrentDateTime),
Filtered = Table.SelectRows(Source, each [Date] = CurrentDate)
in
Filtered
ตารางที่แสดงเฉพาะแถวที่มีวันที่เท่ากับวันปัจจุบัน
DateTimeZone.LocalNow() ส่งกลับค่าประเภท datetimezone พร้อมข้อมูลเขตเวลา ส่วน DateTime.LocalNow() ส่งกลับเฉพาะ datetime โดยไม่มีข้อมูล Offset เขตเวลา ผมแนะนำใช้ DateTimeZone เมื่อต้องการเก็บข้อมูลเขตเวลา เพราะมันสมบูรณ์กว่า
ใช่เลย DateTimeZone.LocalNow() อ่านเขตเวลาจากระบบปฏิบัติการโดยตรง หากเปลี่ยนเขตเวลาของเครื่อง ค่าที่ส่งกลับจะสะท้อนเขตเวลาใหม่นั้นทันที ผมเคยทดสอบแล้ว
ใช้ DateTimeZone.UtcNow() แทน มันจะส่งกลับเวลา UTC ที่มี +00:00 เป็น Offset เสมอ ผมชอบใช้ UTC เมื่อต้องเก็บเวลาในฐานข้อมูล เพราะ UTC เป็นมาตรฐานระหว่างประเทศ
DateTimeZone.LocalNow เป็นฟังก์ชันใน Power Query M ที่ไม่มีพารามิเตอร์ ส่งกลับค่าประเภท datetimezone พร้อมวันเวลาปัจจุบันและข้อมูลเขตเวลาของเครื่องท้องถิ่น ฟังก์ชันนี้ไม่ต้องการอะไรเลย แค่เรียกใช้ก็ได้
ที่เจ๋งคือ มันอ่านเขตเวลาจากระบบโดยอัตโนมัติ ซึ่งต่างจาก UTC ที่เป็นค่าฟิกส์ และต่างจาก DateTime ธรรมดาที่ไม่มีข้อมูลเขตเวลา ผม ชอบใช้มันในการสร้าง Audit Log หรือ Timestamp เวลา Extract ข้อมูลเพราะมันบอกว่าเวลาไหน ตามเขตเวลาจริง 😎
ส่วนตัวผม แนะนำให้ใช้ DateTimeZone.LocalNow เมื่อคุณต้องการให้การแปลงข้อมูลมี Timestamp ที่ตรงกับเขตเวลาของผู้ใช้จริง ไม่ว่าจะอยู่ประเทศไหน มันจะคืนค่ามาตามเขตเวลาของเครื่องนั้นเสมอ