Date.AddYears เพิ่มจำนวนปีที่ระบุให้กับค่า date datetime หรือ datetimezone คืนค่าเดียวกันกับประเภทข้อมูลอินพุต เก็บรักษาส่วนของเวลาไว้เหมือนเดิม ฟังก์ชันนี้จำเป็นสำหรับการคำนวณวันครบรอบปี การวางแผนระยะยาว และการวิเคราะห์ข้อมูลตามชั้นปี
=Date.AddYears(dateTime as any, numberOfYears as number) as any
=Date.AddYears(dateTime as any, numberOfYears as number) as any
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| dateTime | any | Yes | ค่า date datetime หรือ datetimezone ที่ต้องการเพิ่มปี สามารถเป็นค่าคงที่หรือมาจากคอลัมน์ในตาราง | |
| numberOfYears | number | Yes | จำนวนปีที่ต้องการเพิ่ม สามารถใช้จำนวนลบเพื่อลบปี (เช่น -1 จะลดปี 1 ปี) |
คำนวณวันครบรอบปีที่ n ของเหตุการณ์หรือการเริ่มต้นของบริการ
กำหนดจุดสิ้นสุดของโครงการหรือสัญญาที่มีระยะเวลานับเป็นปี
Date.AddYears(#date(2011, 5, 14), 4)=Date.AddYears(#date(2011, 5, 14), 4)
#date(2015, 5, 14)
Date.AddYears(#datetime(2011, 5, 14, 8, 15, 22), 10)=Date.AddYears(#datetime(2011, 5, 14, 8, 15, 22), 10)
#datetime(2021, 5, 14, 8, 15, 22)
Date.AddYears(#date(2011, 5, 14), -2)=Date.AddYears(#date(2011, 5, 14), -2)
#date(2009, 5, 14)
Date.AddYears(#date(2012, 2, 29), 1)=Date.AddYears(#date(2012, 2, 29), 1)
#date(2013, 2, 28)
Date.AddYears(#datetimezone(2011, 5, 14, 8, 15, 22, 8, 0), 5)=Date.AddYears(#datetimezone(2011, 5, 14, 8, 15, 22, 8, 0), 5)
#datetimezone(2016, 5, 14, 8, 15, 22, 8, 0)
ฟังก์ชันจะส่งคืน 28 กุมภาพันธ์ 2013 (ปีที่ไม่ใช่ปีอธิกสุรทิน) เนื่องจากปี 2013 ไม่มี 29 กุมภาพันธ์ ระบบทำการปรับลงโดยอัตโนมัติเพื่อให้ได้วันที่ที่ถูกต้อง
ในกรณีส่วนใหญ่ ผลลัพธ์เหมือนกัน แต่ Date.AddYears ชัดเจนและอ่านได้ง่ายกว่า เมื่อทำงานกับจำนวนปี ลองใช้ Date.AddYears เพราะมันแสดงจุดประสงค์ได้ดีกว่า
ใช่ได้ Date.AddYears(date, 0) จะคืนค่าวันที่เดิมโดยไม่เปลี่ยนแปลง ซึ่งอาจดูโง่ แต่บางครั้งมีประโยชน์ในลอจิกเงื่อนไขที่ซับซ้อน
ทางทฤษฎีไม่มีขีดจำกัด แต่ Power Query ทำงานกับวันที่ระหว่าง 0 ธันวาคม 1899 ถึง 31 ธันวาคม 9999 ดังนั้นต้องแน่ใจว่าผลลัพธ์อยู่ในช่วงนี้
ฟังก์ชัน Date.AddYears ใช้เพื่อเพิ่มจำนวนปีให้กับค่า date datetime หรือ datetimezone ซึ่งเป็นความต้องการทั่วไปในการทำงานกับข้อมูลวันที่เวลา
สิ่งที่เจ๋งของ Date.AddYears คือมันจัดการกับเรื่องปีอธิกสุรทิน (leap years) อย่างอัจฉริยะ ถ้าคุณเพิ่ม 1 ปีจาก 29 กุมภาพันธ์ 2012 (ปีอธิกสุรทิน) ไปยังปี 2013 (ไม่ใช่ปีอธิกสุรทิน) มันจะ ‘ปรับลง’ เป็น 28 กุมภาพันธ์โดยอัตโนมัติ นอกจากนี้ยังรักษาเวลาไว้ตรงเดิมเสมอ
ส่วนตัวผมชอบใช้ Date.AddYears ในกรณีที่ต้องการคำนวณวันครบรอบหรือหน่วยเวลาที่ยาวนาน เพราะมันชัดเจนกว่า Date.AddMonths(date, 12) ทั้งในแง่ของความเข้าใจและการบำรุงรักษา 😎