MySQL การใช้งานฟังก์ชัน MAKEDATE()

ฟังก์ชัน MAKEDATE() ใช้เพื่อสร้างวันที่ (DATE) จากปี (YEAR) และลำดับวันในปี (DAYOFYEAR) เหมาะสำหรับการสร้างวันที่ (DATE) จากเลขปีและเลขวันที่ในปี (day-of-year) เช่น วันที่ 100 ของปี 2025 ก็คือ 2025-04-10

ประโยชน์ของฟังก์ชัน MAKEDATE()

  1. แปลงข้อมูลปีและลำดับวันเป็นวันจริงในปฏิทิน
  2. ใช้สร้างช่วงวันที่ในระบบที่จัดเก็บวันเป็นรูปแบบเชิงตัวเลข
  3. เหมาะสำหรับระบบการเงิน, บันทึกที่จัดเก็บเป็นปี + วัน, ระบบสถิติแบบต่อเนื่อง

รูปแบบการใช้งาน

MAKEDATE(year, dayofyear)
  • year คือปี ค.ศ. (เช่น 2025)
  • dayofyear คือลำดับของวันในปีนั้น (1–365 หรือ 366 ถ้าเป็น leap year)

ตัวอย่างการใช้งาน

วันที่ 100 ของปี 2025 คือวันอะไร?

SQL
SELECT MAKEDATE(2025, 100) AS result;
-- ผลลัพธ์: 2025-04-10

วันที่ 60 ของปีอธิกสุรทิน (Leap Year) 2024

SQL
SELECT MAKEDATE(2024, 60) AS result;
-- ผลลัพธ์: 2024-02-29

สร้างตารางวันจากข้อมูลที่เก็บเป็น year + day_number

SQL
SELECT employee_id, year_joined, day_joined,
       MAKEDATE(year_joined, day_joined) AS join_date
FROM employee_raw;

หมายเหตุ

  • ถ้า dayofyear ไม่อยู่ในช่วง 1–365/366 ผลลัพธ์จะเป็น NULL
  • ควรตรวจสอบให้แน่ใจว่าป้อนค่าถูกต้องโดยเฉพาะ dayofyear ในปีปกติหรือปีอธิกสุรทิน
แชร์เรื่องนี้