แชร์ผ่าน


ฟังก์ชัน DateAdd, DateDiff และ TimeZoneOffset

Function นำไปใช้กับ
DateAdd แอปพื้นที่ทำงาน คอลัมน์สูตร Dataverse โฟลว์เดสก์ท็อป แอปแบบจำลอง Power Platform CLI
DateDiff แอปพื้นที่ทำงาน คอลัมน์สูตร Dataverse โฟลว์เดสก์ท็อป แอปแบบจำลอง Power Platform CLI
TimeZoneOffset แอปพื้นที่ทำงาน โฟลว์เดสก์ท็อป แอปแบบจำลอง 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 เป็นเวลาท้องถิ่น

นอกจากนี้ โปรดดู ชนิดข้อมูล วันที่ เวลา และ วันที่เวลา และ การทำงานกับวันที่และเวลา สำหรับข้อมูลเพิ่มเติม

ไวยากรณ์

DateAdd( DateTime, Addition [, Units ] )

  • วันที่เวลา - จำเป็นต้องมี ค่าวันที่/เวลา ที่จะดำเนินการ
  • ส่วนเพิ่ม - จำเป็นต้องมี ตัวเลขเป็น หน่วย เพื่อเพิ่มไปยัง วันที่เวลา
  • หน่วย - ไมบังคับ ชนิดของ หน่วย ที่เพิ่ม: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters หรือ TimeUnit.Years ได้ ถ้าไม่ระบุ จะใช้ TimeUnit.Days

DateDiff( StartDateTime, EndDateTime [, Units ] )

  • StartDateTime- จำเป็นต้องมี ค่าวันที่/เวลาเริ่มต้น
  • EndDateTime - จำเป็นต้องมี ค่าวันที่/เวลาสิ้นสุด
  • หน่วย - ไมบังคับ ชนิดของ หน่วย ที่เอาออก: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters หรือ TimeUnit.Years ได้ ถ้าไม่ระบุ จะใช้ TimeUnit.Days

TimeZoneOffset( [ DateTime ] )

  • วันที่เวลา-ไม่บังคับ ค่าวัน/เวลาที่จะส่งกลับออฟเซต ตามค่าเริ่มต้นจะใช้วัน/เวลาปัจจุบัน

ตัวอย่าง

ในตัวอย่างเหล่านี้ทั้งหมด สมมติว่าวันที่ปัจจุบันและเวลาคือ 15 กรกฎาคม 2013, 13:02 น.

DateAdd อย่างง่าย

สูตร คำอธิบาย ผลลัพธ์
Text( DateAdd( Now(), 3 ),
"dd-mm-yyyy hh:mm" )
เพิ่ม 3 วัน (หน่วยเริ่มต้น) ไปยังวันที่และเวลาปัจจุบัน "18-07-2013 13:02"
Text( DateAdd( Now(), 4, TimeUnit.Hours ),
"dd-mm-yyyy hh:mm" )
เพิ่มสี่ชั่วโมงไปยังวันที่และเวลาปัจจุบัน "15-07-2013 17:02"
Text( DateAdd( Today(), 1, TimeUnit.Months ),
"dd-mm-yyyy hh:mm" )
เพิ่มหนึ่งเดือนให้กับในวันที่ปัจจุบัน โดยไม่มีเวลา เป็น วันนี้ จะไม่ส่งกลับองค์ประกอบเวลา "15-08-2013 00:00"
Text( DateAdd( Now(), ‑30, TimeUnit.Minutes ),
"dd-mm-yyyy hh:mm" )
ลบเวลา 30 นาทีจากวันที่และเวลาปัจจุบัน "15-07-2013 12:32"

DateDiff อย่างง่าย

สูตร คำอธิบาย ผลลัพธ์
DateDiff( Now(), DateValue("1/1/2014") ) ส่งกลับความแตกต่างระหว่างหน่วยสองในหน่วยเริ่มต้นของ TimeUnit.Days 170
DateDiff( Now(), DateValue("1/1/2014"), TimeUnit.Months ) ส่งกลับความแตกต่างระหว่างค่าสองค่าใน TimeUnit.Months 6
DateDiff( Now(), Today(), TimeUnit.Minutes ) ส่งกลับความแตกต่างระหว่างวันที่/เวลาปัจจุบัน และวันปัจจุบันเท่านั้น (ไม่มีเวลา) เป็นนาที เนื่องจาก ตอนนี้ ช้ากว่า วันนี้ ผลลัพธ์จะเป็นค่าลบ -782

ความแตกต่างของวันที่กับผลลัพธ์ที่เป็นเศษส่วน

ฟังก์ชัน DateDiff จะส่งคืนเฉพาะจำนวนเต็มของหน่วยที่ถูกลบและความแม่นยำจะได้รับในหน่วยที่ระบุ ในการคำนวณความแตกต่างด้วยความแม่นยำที่สูงขึ้น ให้ใช้หน่วยที่เล็กกว่าและแปลงผลลัพธ์ให้เหมาะสม ดังตัวอย่างด้านล่าง

สูตร รายละเอียด ผลลัพธ์
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) นาที/วินาทีจะถูกละเว้น ความแตกต่างจะขึ้นอยู่กับเวลาจนถึงชั่วโมง 1
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 นาทีจะถูกใช้ในความแตกต่าง และผลลัพธ์จะถูกหารด้วย 60 เพื่อให้มีความแตกต่างเป็นชั่วโมง 0.5
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 นาทีและวินาทีจะถูกใช้ในความแตกต่าง ผลลัพธ์จะถูกหารด้วย 3600 เพื่อให้มีความแตกต่างเป็นชั่วโมง 0.51

กำลังแปลงเป็น UTC

การแปลงเป็น UTC (เวลามาตรฐานสากล) ให้เพิ่ม TimeZoneOffset สำหรับเวลาที่ระบุ

ตัวอย่างเช่น ลองนึกถึงวันที่และเวลาปัจจุบันเป็น 15 กรกฎาคม 2013, 1:02 PM ในเวลาตามฤดูกาลแปซิฟิก (PDT, UTC-7) การกำหนดเวลาปัจจุบันใน UTC ใช้:

  • DateAdd( Now(), 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( StartTime, −TimeZoneOffset( StartTime ), TimeUnit.Minutes )

โปรดสังเกตเครื่องหมายลบก่อน TimeZoneOffset เพื่อลบออฟเซตแทนที่จะเพิ่มขึ้น

การดูผลลัพธ์ ใช้ฟังก์ชัน Text ที่มีรูปแบบ dd-mm-yyyy hh:mm ซึ่งจะได้ผลลัพธ์เป็น 15-07-2013 13:02 ถ้าคุณอยู่ในเวลาตามฤดูกาลแปซิฟิก