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

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

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

  • ใช้คำนวณวันครบกำหนด เช่น วันหมดอายุสมาชิก, ใบแจ้งหนี้
  • ใช้วิเคราะห์แนวโน้มจากวันในอดีตหรืออนาคต
  • ใช้ในระบบเวลา เช่น เพิ่ม 7 วันนับจากวันเริ่มต้น

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

แบบที่ 1 บวกจำนวนวัน

ADDDATE(date, number_of_days)
  • date คือวันที่เริ่มต้น
  • number_of_days คือจำนวนวันที่จะบวก (ค่าบวกหรือลบก็ได้)

แบบที่ 2 ใช้ INTERVAL เพื่อบวกเป็นช่วงเวลา

ADDDATE(date, INTERVAL value unit)
  • 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 ADDDATE('2025-04-10', 10) AS result;
-- ผลลัพธ์: 2025-04-20

บวกจำนวนวันย้อนหลัง

SQL
SELECT ADDDATE('2025-04-10', -7) AS result;
-- ผลลัพธ์: 2025-04-03

แบบใช้ INTERVAL

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

SELECT ADDDATE('2025-04-10', INTERVAL 1 YEAR) AS result;
-- ผลลัพธ์: 2026-04-10

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

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

เพิ่ม 30 วันจากวันที่สั่งซื้อ

SQL
SELECT order_id, order_date,
       ADDDATE(order_date, INTERVAL 30 DAY) AS due_date
FROM orders;

สร้างวันนัดหมายครั้งถัดไป (เช่น 1 เดือนถัดไป)

SQL
SELECT customer_id, last_visit,
       ADDDATE(last_visit, INTERVAL 1 MONTH) AS next_visit
FROM customer_visits;

หมายเหตุ

  • ต้องใช้รูปแบบวันที่ให้ถูกต้อง (YYYY-MM-DD, YYYY-MM-DD HH:MM:SS)
  • หากใช้ INTERVAL ต้องระบุ unit ให้ถูก เช่น DAY, MONTH, YEAR
  • หากใส่ค่าที่ไม่ถูกต้อง เช่น หน่วยไม่ถูกต้อง จะเกิด Error
แชร์เรื่องนี้