DATE สร้างค่าวันที่จากตัวเลข Year/Month/Day แล้วคืนค่าเป็นชนิด datetime เหมาะกับการประกอบวันที่จากคอลัมน์แยกส่วนหรือสร้างวันที่อ้างอิง เช่น วันแรกของเดือน วันตัดยอด
=DATE(<Year>, <Month>, <Day>)
=DATE(<Year>, <Month>, <Day>)
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| Year | Integer | Yes | ปี เช่น 2025 หรือ 25 (ค่า 0-49 ถูกตีความว่า 2000-2049, 50-99 ถูกตีความว่า 1900-1999) | |
| Month | Integer | Yes | เดือน (1-12) ค่าเกิน 12 จะเลื่อนไปปีถัดไป เช่น เดือน 14 = เดือนที่ 2 ของปีถัดไป | |
| Day | Integer | Yes | วัน (1-31) ค่าเกินจำนวนวันในเดือน จะเลื่อนไปเดือนถัดไป เช่น 35 มกราคม = 4 กุมภาพันธ์ |
เช่น สร้างวันที่ของวันแรกในเดือนที่ระบุ
เช่น มี Year/Month แยกคอลัมน์ ต้องการสร้างวันที่เพื่อเชื่อมกับตารางวันที่
Cutoff Date = DATE(2025, 12, 31)Cutoff Date =
DATE(2025, 12, 31)
31/12/2025
Start Date = DATE(Orders[Year], Orders[Month], 1)Start Date =
DATE(Orders[Year], Orders[Month], 1)
วันแรกของเดือนตามข้อมูลในแต่ละแถว
DateTable = CALENDAR( DATE(2024, 1, 1), DATE(2024, 12, 31) )DateTable =
CALENDAR(
DATE(2024, 1, 1),
DATE(2024, 12, 31)
)
ตารางวันที่ทั้งปี 2024 (365 แถว)
Next Month Date = DATE(Sales[Year], Sales[Month] + 1, 1)Next Month Date =
DATE(Sales[Year], Sales[Month] + 1, 1)
วันแรกของเดือนถัดไป (หากเดือน = 12 ก็จะเป็น 1/1 ปีถัดไป)
Last Day = DATE(2025, 2, 35)Last Day =
DATE(2025, 2, 35)
7/3/2025
DAX จัดการ overflow โดยหมุนไปหน่วยที่สูงกว่า เช่น เดือน 13 → เดือน 1 ปีถัดไป, วันที่ 32 มกราคม → 1 กุมภาพันธ์ ซึ่งมีประโยชน์ในการคำนวณตัวอักษรแบบไดนามิก
DATE สร้างวันที่จากตัวเลข Year/Month/Day (ตัวเลข), ส่วน DATEVALUE แปลงข้อความที่เป็นวันที่ให้เป็นชนิด datetime เลือกใช้ตามว่าข้อมูลต้นฉบับเป็นตัวเลขหรือข้อความ
ใช่ DATE รองรับใน DirectQuery สำหรับ measures และ calculated columns ในทุก Power BI, Excel, SSAS Tabular, Azure Analysis Services
DAX จะปัดเศษให้เป็นจำนวนเต็มก่อน ดังนั้น 25.7 ≈ 26 ถ้าหากต้องการความแม่นยำ ควรปัดเศษล่วงหน้าด้วย INT() หรือ ROUND()
ค่า 0 หรือลบจะทำให้เกิด error ในบางกรณี ควรตรวจสอบข้อมูล input ให้ถูกต้องโดยใช้ IF หรือ IFERROR
DATE ใช้สร้างค่าวันที่จากตัวเลข ปี (Year) เดือน (Month) และวัน (Day) แล้วคืนค่าเป็นชนิดวันที่/เวลา (datetime).
ที่เจ๋งของ DATE คือมันสามารถจัดการ overflow อัตโนมัติ เช่น ถ้าบอกให้สร้างวันที่ “เดือนที่ 14” มันจะหมุนไปปีถัดไปเองโดยไม่ error ซึ่งทำให้สร้างการคำนวณโดยไม่ต้องกังวลเรื่อง edge case
ส่วนตัวผมคิดว่า DATE ถูกใช้บ่อยที่สุดเมื่อมีข้อมูล Year/Month/Day แยกกันในตาราง หรือต้องการสร้างวันที่คงที่สำหรับการเปรียบเทียบ เช่น วันสิ้นปี วันตัดยอด แล้วใช้ร่วมกับ CALENDAR เพื่อสร้าง Date Table 😎