ฟังก์ชัน DateAdd, DateDiff และ TimeZoneOffset
Function | นำไปใช้กับ |
---|---|
วันที่เพิ่ม | แอป Canvas Dataverse คอลัมน์สูตร โฟลว์เดสก์ท็อป แอปที่ขับเคลื่อนด้วยโมเดล Power Platform CLI |
ความแตกต่างของวันที่ | แอป Canvas Dataverse คอลัมน์สูตร โฟลว์เดสก์ท็อป แอปที่ขับเคลื่อนด้วยโมเดล Power Platform CLI |
ไทม์โซนออฟเซ็ต | แอป Canvas โฟลว์เดสก์ท็อป แอปที่ขับเคลื่อนโดยโมเดล Power Platform CLI |
เพิ่มหรือค้นหาความแตกต่างของค่าวันที่/เวลา จากนั้นแปลงค่าระหว่างเวลาท้องถิ่นกับเวลา UTC
คำอธิบาย
ฟังก์ชัน DateAdd เพิ่มตัวเลขของหน่วยเป็นค่าวันที่/เวลา ผลลัพธ์คือ ค่าวันที่/เวลาใหม่ นอกจากนี้ คุณยังสามารถลบตัวเลขของหน่วยจากค่าวันที่/เวลาได้ โดยการระบุเป็นค่าลบ
ฟังก์ชัน DateDiff ส่งกลับค่าความแตกต่างระหว่างค่าวันที่/เวลา สองค่า ผลลัพธ์คือตัวเลขของหน่วยต่าง ๆ
สำหรับทั้งสองฟังก์ชัน หน่วยสามารถเป็น TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters หรือ TimeUnit.Years ได้ ตามค่าเริ่มต้น ทั้งสองฟังก์ชันใช้ TimeUnit.Days เป็นหน่วย
ฟังก์ชัน TimeZoneOffset ส่งกลับตัวเลขนาทีระหว่างเวลาท้องถิ่นของผู้ใช้และ UTC (เวลามาตรฐานสากล)
คุณสามารถใช้ DateAdd กับ TimeZoneOffset ได้ เพื่อแปลงค่าระหว่างเวลาท้องถิ่นของผู้ใช้และ UTC (เวลามาตรฐานสากล) การเพิ่ม TimeZoneOffset จะแปลงเวลาท้องถิ่นเป็น UTC และลบค่านั้น (การเพิ่มค่าลบ) จะแปลงจาก UTC เป็นเวลาท้องถิ่น
นอกจากนี้ โปรดดู ชนิดข้อมูล วันที่ เวลา และ วันที่เวลา และ การทำงานกับวันที่และเวลา สำหรับข้อมูลเพิ่มเติม
ไวยากรณ์
วันที่เพิ่ม( วันที่และเวลา, การเพิ่ม [, หน่วย ] )
- DateTime - จำเป็น ค่าวันที่/เวลา ที่จะดำเนินการ
- เพิ่มเติม - จำเป็น ตัวเลขเป็น หน่วย เพื่อเพิ่มไปยัง วันที่เวลา
- หน่วย - ตัวเลือก ชนิดของ หน่วย ที่เพิ่ม: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters หรือ TimeUnit.Years ได้ ถ้าไม่ระบุ จะใช้ TimeUnit.Days
DateDiff( StartDateTime, EndDateTime [, หน่วย ] )
- StartDateTime - จำเป็น ค่าวันที่/เวลาเริ่มต้น
- EndDateTime - จำเป็น ค่าวันที่/เวลาสิ้นสุด
- หน่วย - ตัวเลือก ชนิดของ หน่วย ที่เอาออก: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters หรือ TimeUnit.Years ได้ ถ้าไม่ระบุ จะใช้ TimeUnit.Days
โซนเวลาออฟเซ็ต( [ วันที่และเวลา ] )
- DateTime - ไม่บังคับ ค่าวัน/เวลาที่จะส่งกลับออฟเซต ตามค่าเริ่มต้นจะใช้วัน/เวลาปัจจุบัน
ตัวอย่าง
ในตัวอย่างเหล่านี้ทั้งหมด สมมติว่าวันที่ปัจจุบันและเวลาคือ 15 กรกฎาคม 2013, 13:02 น.
DateAdd อย่างง่าย
สูตร | คำอธิบาย | ผลลัพธ์ |
---|---|---|
ข้อความ( DateAdd( ตอนนี้(), 3 ), "dd-mm-yyyy hh:mm" ) |
เพิ่ม 3 วัน (หน่วยเริ่มต้น) ไปยังวันที่และเวลาปัจจุบัน | "18-07-2013 13:02" |
ข้อความ(DateAdd(ตอนนี้(), 4, หน่วยเวลา.ชั่วโมง ), "dd-mm-yyyy hh:mm" ) |
เพิ่มสี่ชั่วโมงไปยังวันที่และเวลาปัจจุบัน | "15-07-2013 17:02" |
ข้อความ( DateAdd( วันนี้(), 1, หน่วยเวลา.เดือน ), "dd-mm-yyyy hh:mm" ) |
เพิ่มหนึ่งเดือนให้กับในวันที่ปัจจุบัน โดยไม่มีเวลา เป็น วันนี้ จะไม่ส่งกลับองค์ประกอบเวลา | "15-08-2013 00:00" |
ข้อความ(DateAdd(ตอนนี้(), ‑30, หน่วยเวลา.นาที ), "dd-mm-yyyy hh:mm" ) |
ลบเวลา 30 นาทีจากวันที่และเวลาปัจจุบัน | "15-07-2013 12:32" |
DateDiff อย่างง่าย
สูตร | คำอธิบาย | ผลลัพธ์ |
---|---|---|
DateDiff( ตอนนี้(), DateValue("1/1/2014") ) | ส่งกลับความแตกต่างระหว่างหน่วยสองในหน่วยเริ่มต้นของ TimeUnit.Days | 170 |
DateDiff( ตอนนี้(), DateValue("1/1/2014"), หน่วยเวลา.เดือน ) | ส่งกลับความแตกต่างระหว่างค่าสองค่าใน TimeUnit.Months | 6 |
DateDiff( ตอนนี้(), วันนี้(), หน่วยเวลา.นาที ) | ส่งกลับความแตกต่างระหว่างวันที่/เวลาปัจจุบัน และวันปัจจุบันเท่านั้น (ไม่มีเวลา) เป็นนาที เนื่องจาก ตอนนี้ ช้ากว่า วันนี้ ผลลัพธ์จะเป็นค่าลบ | -782 |
ความแตกต่างของวันที่กับผลลัพธ์ที่เป็นเศษส่วน
ฟังก์ชัน DateDiff จะส่งคืนเฉพาะจำนวนเต็มของหน่วยที่ถูกลบและความแม่นยำจะได้รับในหน่วยที่ระบุ ในการคำนวณความแตกต่างด้วยความแม่นยำที่สูงขึ้น ให้ใช้หน่วยที่เล็กกว่าและแปลงผลลัพธ์ให้เหมาะสม ดังตัวอย่างด้านล่าง
สูตร | รายละเอียด | ผลลัพธ์ |
---|---|---|
DateDiff(ค่าเวลา("09:45:00"), ค่าเวลา("10:15:36"), หน่วยเวลา.ชั่วโมง ) | นาที/วินาทีจะถูกละเว้น ความแตกต่างจะขึ้นอยู่กับเวลาจนถึงชั่วโมง | 1 |
DateDiff( ค่าเวลา("09:45:00"), ค่าเวลา("10:15:36"), หน่วยเวลา.นาที )/60 | นาทีจะถูกใช้ในความแตกต่าง และผลลัพธ์จะถูกหารด้วย 60 เพื่อให้มีความแตกต่างเป็นชั่วโมง | 0.5 |
DateDiff(ค่าเวลา("09:45:00"), ค่าเวลา("10:15:36"), หน่วยเวลาวินาที )/3600 | นาทีและวินาทีจะถูกใช้ในความแตกต่าง ผลลัพธ์จะถูกหารด้วย 3600 เพื่อให้มีความแตกต่างเป็นชั่วโมง | 0.51 |
กำลังแปลงเป็น UTC
การแปลงเป็น UTC (เวลามาตรฐานสากล) ให้เพิ่ม TimeZoneOffset สำหรับเวลาที่ระบุ
ตัวอย่างเช่น ลองนึกถึงวันที่และเวลาปัจจุบันเป็น 15 กรกฎาคม 2013, 1:02 PM ในเวลาตามฤดูกาลแปซิฟิก (PDT, UTC-7) การกำหนดเวลาปัจจุบันใน UTC ใช้:
- DateAdd( ตอนนี้(), TimeZoneOffset(), TimeUnit.Minutes )
TimeZoneOffset ค่าเริ่มต้นเป็นเวลาปัจจุบัน ดังนั้นคุณไม่จำเป็นต้องส่งอาร์กิวเมนต์ให้
เมื่อต้องการดูผลลัพธ์ ใช้ฟังก์ชัน Text ที่มีรูปแบบ dd-mm-yyyy hh:mm ซึ่งจะส่งกลับเป็น 15-07-2013 20:02
กำลังแปลงจาก UTC
เมื่อต้องการแปลงจาก UTC ให้ลบ TimeZoneOffset (โดยการเพิ่มค่าลบ) สำหรับเวลาที่ระบุ
ตัวอย่างเช่น สมมติว่าวันที่และเวลาของ UTC คือ 15 กรกฎาคม 2013, 8:02 PM ถูกเก็บไว้ในตัวแปรที่ชื่อว่า StartTime การปรับเวลาสำหรับโซนเวลาของผู้ใช้ ให้ใช้:
- DateAdd( เวลาเริ่มต้น, −TimeZoneOffset( เวลาเริ่มต้น ), หน่วยเวลา.นาที )
โปรดสังเกตเครื่องหมายลบก่อน TimeZoneOffset เพื่อลบออฟเซตแทนที่จะเพิ่มขึ้น
การดูผลลัพธ์ ใช้ฟังก์ชัน Text ที่มีรูปแบบ dd-mm-yyyy hh:mm ซึ่งจะได้ผลลัพธ์เป็น 15-07-2013 13:02 ถ้าคุณอยู่ในเวลาตามฤดูกาลแปซิฟิก