ฟังก์ชัน 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