บทนำ
การคำนวณวันที่วานนี้ (หรือวันที่ลบจำนวนวันใดๆ) ใน MySQL สามารถใช้ฟังก์ชัน DATE_SUB() ร่วมกับ CURDATE() ได้
วันที่ปัจจุบัน
mysql> SELECT CURDATE();
+------------+
| CURDATE() |
+------------+
| 2019-06-09 |
+------------+
ตัวอย่างการสร้างตารางและเพิ่มข้อมูล (ใส่วันที่วานนี้โดยอัตโนมัติ)
mysql> CREATE TABLE DemoTable (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> ShippingDate DATE
-> );
Query OK, 0 rows affected (0.63 sec)
mysql> INSERT INTO DemoTable(ShippingDate)
-> VALUES(DATE_SUB(CURDATE(), INTERVAL 1 DAY));
แสดงข้อมูล
mysql> SELECT * FROM DemoTable;
ผลลัพธ์
+----+--------------+
| Id | ShippingDate |
+----+--------------+
| 1 | 2019-06-08 |
+----+--------------+
1 row in set (0.00 sec)
รูปแบบการใช้งาน DATE_SUB
DATE_SUB(date, INTERVAL expr unit)
หน่วยเวลาที่ใช้ได้ (Unit)
DAY- วันMONTH- เดือนYEAR- ปีHOUR,MINUTE,SECOND- ชั่วโมง, นาที, วินาที
ตัวอย่างเพิ่มเติม
-- 3 วันที่แล้ว
DATE_SUB(CURDATE(), INTERVAL 3 DAY)
-- 1 เดือนที่แล้ว
DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
-- 1 ปีที่แล้ว
DATE_SUB(CURDATE(), INTERVAL 1 YEAR)