Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

เพิ่มวันให้กับค่า DATETIME ใน MySQL ด้วย DATE_ADD


ไวยากรณ์ DATE_ADD

ฟังก์ชัน DATE_ADD() ใช้เพิ่มช่วงเวลา (Interval) ให้กับวันที่/เวลา:

DATE_ADD(date_value, INTERVAL expr unit)

เพิ่ม 1 วัน

SELECT DATE_ADD(NOW(), INTERVAL 1 DAY) AS tomorrow_datetime;
SELECT DATE_ADD(CURDATE(), INTERVAL 1 DAY) AS tomorrow_date;

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

เพิ่ม 1 วันจากเวลาปัจจุบัน

SELECT DATE_ADD(NOW(), INTERVAL 1 DAY) AS Adding1DayDemo;
+---------------------+
| Adding1DayDemo      |
+---------------------+
| 2018-12-07 20:06:59 |
+---------------------+

เพิ่ม 1 วันจากวันที่ปัจจุบัน (ไม่มีเวลา)

SELECT DATE_ADD(CURDATE(), INTERVAL 1 DAY) AS Adding1DayDemo;
+----------------+
| Adding1DayDemo |
+----------------+
| 2018-12-07     |
+----------------+

ใช้กับคอลัมน์ในตาราง

CREATE TABLE AddOneday (DueTime DATETIME);
INSERT INTO AddOneday VALUES (NOW()), (CURDATE());

ข้อมูลต้นฉบับ

+---------------------+
| DueTime             |
+---------------------+
| 2018-12-06 20:10:47 |
| 2018-12-06 00:00:00 |
+---------------------+

คำสั่งเพิ่ม 1 วัน

SELECT DATE_ADD(DueTime, INTERVAL 1 DAY) AS AddingOneDay
FROM AddOneday;

ผลลัพธ์

+---------------------+
| AddingOneDay        |
+---------------------+
| 2018-12-07 20:10:47 |
| 2018-12-07 00:00:00 |
+---------------------+

หน่วย INTERVAL ที่รองรับ

Unit ตัวอย่าง
MICROSECOND INTERVAL 500000 MICROSECOND
SECOND INTERVAL 30 SECOND
MINUTE INTERVAL 30 MINUTE
HOUR INTERVAL 2 HOUR
DAY INTERVAL 1 DAY
WEEK INTERVAL 1 WEEK
MONTH INTERVAL 1 MONTH
QUARTER INTERVAL 1 QUARTER
YEAR INTERVAL 1 YEAR

ลบวัน (ใช้ INTERVAL ติดลบ)

DATE_ADD(NOW(), INTERVAL -1 DAY)  -- วานนี้
DATE_SUB(NOW(), INTERVAL 1 DAY)   -- ทางเลือกอื่น