ฟังก์ชัน FROM_DAYS() ใช้เพื่อแปลงค่าจำนวนวัน (จำนวนเต็ม) เป็นวันที่ (DATE) โดยถือว่าเริ่มนับจากวันที่ '0000-01-01' มีความสามารถเฉพาะตัวในการแปลงค่าจำนวนวัน (days) เป็นวันที่ (DATE) ซึ่งเหมาะกับการใช้งานเกี่ยวกับวันที่ที่คำนวณจากค่าตัวเลข เช่น การแปลงจำนวนวันที่นับจากปี ค.ศ. 0 (Julian Day) ให้เป็นวันจริง
ประโยชน์ของฟังก์ชัน FROM_DAYS()
- แปลงค่าจำนวนวัน (จาก
TO_DAYS()) กลับมาเป็นวันที่จริง - ใช้คำนวณอายุโดยใช้
DATEDIFF()แล้วแปลงกลับเป็นปี - ใช้สร้างวันที่จากค่าที่เก็บเป็นจำนวนวันในระบบเก่า
- เหมาะกับการคำนวณย้อนหลังจากค่าเลขวัน
รูปแบบการใช้งาน
FROM_DAYS(days)
daysคือค่าจำนวนวัน (ชนิดข้อมูลINT) ที่ต้องการแปลงเป็นDATE
ตัวอย่างการใช้งาน
แปลงจำนวนวันเป็นวันที่
SQL
SELECT FROM_DAYS(738935) AS converted_date;
-- ผลลัพธ์: 2023-02-19- ตัวเลข 738935 คือนับวันตั้งแต่ปี 0 ตรงกับ 19 กุมภาพันธ์ 2023
ใช้ร่วมกับ TO_DAYS()
SQL
SELECT FROM_DAYS(TO_DAYS('2025-04-10')) AS back_to_date;
-- ผลลัพธ์: 2025-04-10คำนวณอายุแบบประมาณ (จากวันเกิด)
SQL
SELECT FLOOR(DATEDIFF(CURDATE(), birth_date) / 365) AS approx_age
FROM members;หรือแบบเปลี่ยนเป็น DATE แล้วแยก YEAR
SQL
SELECT YEAR(FROM_DAYS(DATEDIFF(CURDATE(), birth_date))) AS age_years
FROM members;