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

ฟังก์ชัน DATEDIFF() ใช้เพื่อคำนวณความแตกต่างระหว่างวันที่ 2 ค่า โดยผลลัพธ์เป็นจำนวนวัน เหมาะสำหรับงานที่ต้องการคำนวณจำนวนวันระหว่างวันที่สองวัน เช่น การคำนวณอายุ, การหาวันครบกำหนด, หรือการเปรียบเทียบวันหมดอายุ

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

  1. ใช้หาจำนวนวันระหว่างวันเริ่มต้นกับวันสิ้นสุด
  2. ใช้คำนวณอายุ, วันครบกำหนด, ระยะเวลาการใช้งาน
  3. ใช้กรองข้อมูล เช่น หาเอกสารที่เลยกำหนด
  4. เหมาะกับระบบการเงิน, จัดการสมาชิก, การนัดหมาย, การวิเคราะห์เวลา

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

DATEDIFF(date1, date2)

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

เปรียบเทียบ 2 วันที่

SQL
SELECT DATEDIFF('2025-04-15', '2025-04-10') AS diff;
-- ผลลัพธ์: 5

วันย้อนหลัง

SQL
SELECT DATEDIFF('2025-04-10', '2025-04-20') AS diff;
-- ผลลัพธ์: -10

ใช้เปรียบเทียบกับวันที่ปัจจุบัน

SQL
SELECT DATEDIFF(CURDATE(), '2025-01-01') AS days_passed;

ตัวอย่างการประยุกต์ใช้งาน

คำนวณอายุสมาชิก (นับจากวันเกิด)

SQL
SELECT member_id, birth_date,
       DATEDIFF(CURDATE(), birth_date) / 365 AS approx_age_years
FROM members;
  • หาร 365 เพื่อประมาณอายุเป็นปี

แสดงรายการที่ใกล้ครบกำหนดใน 7 วัน

SQL
SELECT task_id, due_date,
       DATEDIFF(due_date, CURDATE()) AS days_left
FROM tasks
WHERE DATEDIFF(due_date, CURDATE()) BETWEEN 0 AND 7;
แชร์เรื่องนี้