Duration.TotalDays ใช้แปลงค่า duration เป็นจำนวนวันทั้งหมด (รวมทศนิยม) เหมาะสำหรับคำนวณช่วงเวลาที่ต้องความแม่นยำ
=Duration.TotalDays(duration as nullable duration) as nullable number
=Duration.TotalDays(duration as nullable duration) as nullable number
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| duration | duration | Yes | ค่า duration ที่ต้องการแปลงเป็นจำนวนวันทั้งหมด |
Duration.TotalDays(#duration(5, 4, 3, 2))=Duration.TotalDays(#duration(5, 4, 3, 2))
5.1687731481481478
Duration.TotalDays(#date(2022, 3, 4) - #date(2022, 2, 25))=Duration.TotalDays(#date(2022, 3, 4) - #date(2022, 2, 25))
7
Duration.TotalDays(#duration(10, 12, 30, 0)) * 24=Duration.TotalDays(#duration(10, 12, 30, 0)) * 24
252
[DurationColumn] = Duration.TotalDays([Duration])[DurationColumn] = Duration.TotalDays([Duration])
ค่าทศนิยมแสดงจำนวนวันทั้งหมด
ผม พบว่า Duration.Days ส่งคืนแค่ส่วนวันของ duration (0-ค่าสูงสุด) แต่ Duration.TotalDays ส่งคืนวันทั้งหมดรวมทศนิยม เช่น duration 2 วัน 12 ชั่วโมง Duration.Days ให้ 2 แต่ Duration.TotalDays ให้ 2.5
ได้นะ ผมใช้เวลาคำนวณระยะห่างวันที่ เช่น #date(2022, 3, 4) – #date(2022, 2, 25) จะได้ duration ที่ผ่านสูตร Duration.TotalDays ได้ปกติ
ส่งคืน null ครับ ผมแนะนำให้ใช้ null coalescing (??) หรือ if-then-else เพื่อจัดการกรณีนี้
Duration.TotalDays คือฟังก์ชันที่ใช้แปลงค่า duration ให้เป็นตัวเลขแสดงจำนวนวันทั้งหมด ส่วนทศนิยมนั้นแทนชั่วโมง นาที และวินาที ซึ่งต่างจาก Duration.Days ที่ส่งคืนแค่ส่วนวันเท่านั้น
ที่เจ๋งคือ ใช้ได้กับระยะเวลาที่มีความแม่นยำสูง เช่นคำนวณช่วงเวลาเอกสารจัดส่ง หรือวัดประสิทธิภาพของกระบวนการ เพราะมันรวมทั้งชั่วโมง นาที วินาทีไว้ในจำนวนวัน
ส่วนตัวผม ผมชอบใช้ Duration.TotalDays เวลาต้องประมวลผลข้อมูลเวลา เช่นการนำเข้าจากระบบอื่นที่บันทึกเป็น duration ปละอะไรแบบนี้ มันง่ายสำหรับการคำนวณต่อ 😎