DateTime.LocalNow คืนค่า DateTime (วันที่ + เวลา) ปัจจุบันตามระบบ เทียบเท่า NOW() ใน Excel แต่ทำงานบน Power Query
ฟังก์ชัน DateTime.LocalNow ใช้สำหรับดึงค่าวันที่และเวลาปัจจุบัน (Current Date & Time) ตามเวลาของเครื่องคอมพิวเตอร์ที่รัน Power Query มักใช้เพื่อบันทึกเวลาที่รีเฟรชข้อมูล (Last Refreshed) หรือสร้าง Timestamp ของการโหลดข้อมูล
สิ่งที่เจ๋งคือ DateTime.LocalNow มีความยืดหยุ่นในการเชื่อมต่อกับฟังก์ชัน DateTime อื่นๆ เช่น DateTime.Date เพื่อสกัดแค่วันที่ หรือ DateTime.Time เพื่อสกัดแค่เวลา
ส่วนตัวผม มักใช้ DateTime.LocalNow คู่กับ Duration.Days เพื่อเช็คว่าข้อมูลเก่ากี่วัน หรือคู่กับตัวอักษร Text.From เพื่อสร้าง Log Message ของการรีเฟรช ทำให้ดูแลข้อมูลได้ง่ายขึ้นเยอะครับ
เพิ่มคอลัมน์ที่ระบุว่าข้อมูลชุดนี้ถูกดึงมาเมื่อไหร่ เพื่อแสดงใน Report
นำเวลาปัจจุบันลบด้วยเวลาที่เกิดรายการ (Transaction Time) เพื่อดูว่าผ่านมานานแค่ไหนแล้ว
ใช้เปรียบเทียบเพื่อกรองเอาเฉพาะข้อมูลในช่วง 24 ชั่วโมงที่ผ่านมา
แสดงวันและเวลา ณ ขณะที่ Query กำลังทำงาน รูปแบบจะเป็น DateTime ค่า
ใช้ DateTime.Date เพื่อแยกเฉพาะส่วนวันที่ออก โดยตัดเวลาทิ้ง
ใช้ DateTime.Time เพื่อแยกเฉพาะส่วนเวลาออก (ชั่วโมง นาที วินาที)
แปลงเป็นข้อความเพื่อแสดงในตาราง หรือบันทึกเวลาอัปเดต ใช้ได้ทั่วไปและอ่านง่าย
เช็คว่าข้อมูลเก่ากี่วัน โดยลบวันที่ข้อมูลจากวันปัจจุบัน ใช้ได้ดีสำหรับการตรวจสอบความเป็นปัจจุบันของข้อมูล
DateTime.LocalNow มีโอกาสเปลี่ยนค่าไปเรื่อยๆ ระหว่างที่ Query ทำงาน (ถ้า Query รันนาน) แต่ DateTime.FixedLocalNow จะตรึงค่าเดิมไว้ตลอดการทำงานของ Query นั้น ส่วนตัวผมใช้ FixedLocalNow มากกว่าเพื่อให้ Consistent ครับ
ไม่ครับ บน Cloud มักจะเป็นเวลา UTC เสมอ ถ้าต้องการเวลาไทยต้องใช้ DateTime.AddZone หรือบวกเวลาเพิ่มเอง (+7 ชั่วโมง) สำคัญคือเตรียมตัวไว้ตั้งแต่เขียน Query
บน Desktop ขอบคุณ LocalNow ถ้า Query รันเร็ว ความแตกต่างไม่มาก แต่ FixedLocalNow ปลอดภัยกว่า บน Cloud ต้อง FixedLocalNow แน่นอน
ได้ครับ แต่ต้องระวังว่าทุกแถวจะได้เวลาตรวจสอบเดียวกัน (หรือใกล้เคียง) ถ้าต้องการ Unique Timestamp ต่อแถวต้องใช้เทคนิคอื่นเพิ่มเติม
ฟังก์ชันที่ผู้เขียนโยงไว้กับ DateTime.LocalNow จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
ดึงเฉพาะส่วนวันที่ (Date) ออกจากค่า DateTime หรือ DateTimeZone โดยทิ้งเวลาไป
คืนค่าวันและเวลาปัจจุบัน (Local) โดยค่าจะคงที่ตลอดการทำงานของ Query (ไม่เปลี่ยนไปเรื่อยๆ)
ฟังก์ชันที่ดึงเฉพาะส่วนเวลา (Time) ออกจากค่า DateTime เมื่อคุณต้องการแยกเวลาจากค่าวันที่และเวลารวมกัน
คืนค่าไตรมาสของปี (1-4) จากวันที่ที่กำหนด ใช้สำหรับการวิเคราะห์ข้อมูลรายไตรมาส
DateTimeZone.LocalNow ส่งกลับวันและเวลาปัจจุบันของระบบพร้อมข้อมูลเขตเวลาท้องถิ่น ใช้สำหรับสร้าง Timestamp ที่รับรู้เขตเวลา
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่