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

ฟังก์ชัน DATE_ADD() ใช้เพื่อบวกช่วงเวลา (INTERVAL) เข้าไปใน DATE, DATETIME หรือ TIMESTAMP เหมาะสำหรับงานที่ต้องการ บวกวัน, เดือน, ปี หรือเวลา เข้ากับวันที่ เช่น การคำนวณวันครบกำหนด, วันหมดอายุ, หรือระยะเวลาใช้งาน

ฟังก์ชันนี้รองรับการเพิ่มทั้งวัน (DAY), เดือน (MONTH), ปี (YEAR), ชั่วโมง (HOUR), นาที (MINUTE), วินาที (SECOND)

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

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

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

DATE_ADD(date, INTERVAL value unit)
  • date คือวันที่เริ่มต้น (ชนิด DATE, DATETIME, TIMESTAMP)
  • value คือจำนวนที่ต้องการเพิ่ม
  • unit คือหน่วยของช่วงเวลา เช่น
    • MICROSECOND
    • SECOND
    • MINUTE
    • HOUR
    • DAY
    • WEEK
    • MONTH
    • QUARTER
    • YEAR
    • SECOND_MICROSECOND
    • MINUTE_MICROSECOND
    • MINUTE_SECOND
    • HOUR_MICROSECOND
    • HOUR_SECOND
    • HOUR_MINUTE
    • DAY_MICROSECOND
    • DAY_SECOND
    • DAY_MINUTE
    • DAY_HOUR
    • YEAR_MONTH

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

บวกวัน

SQL
SELECT DATE_ADD('2025-04-10', INTERVAL 7 DAY);
-- ผลลัพธ์: 2025-04-17

บวกเดือน

SQL
SELECT DATE_ADD('2025-04-10', INTERVAL 2 MONTH);
-- ผลลัพธ์: 2025-06-10

บวกเวลา

SQL
SELECT DATE_ADD('2025-04-10 08:00:00', INTERVAL 3 HOUR);
-- ผลลัพธ์: 2025-04-10 11:00:00

ใช้กับ CURDATE()

SQL
SELECT DATE_ADD(CURDATE(), INTERVAL 30 DAY) AS due_date;

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

เพิ่มวันหมดอายุให้สมาชิก 1 ปี

SQL
SELECT member_id, join_date,
       DATE_ADD(join_date, INTERVAL 1 YEAR) AS expire_date
FROM members;

เพิ่มเวลานัดหมาย 45 นาที

SQL
SELECT appointment_id, start_time,
       DATE_ADD(start_time, INTERVAL 45 MINUTE) AS end_time
FROM appointments;
แชร์เรื่องนี้