เพื่อตรวจสอบว่าวันที่ในคอลัมน์ (Deadline, Expiry Date, v.v.) ผ่านไปแล้วหรือยัง ให้เปรียบเทียบกับฟังก์ชัน CURDATE() ซึ่งคืนค่าวันที่ปัจจุบันของ Server
ตัวอย่างการใช้งาน
สร้างตารางเก็บ Deadline:
mysql> create table DemoTable1340 (Deadline date);
mysql> insert into DemoTable1340 values('2019-09-18'),('2019-09-23'),('2018-12-24'),('2016-11-01'),('2019-09-28');
ข้อมูลทั้งหมด:
+------------+ | Deadline | +------------+ | 2019-09-18 | | 2019-09-23 | | 2018-12-24 | | 2016-11-01 | | 2019-09-28 | +------------+
ตรวจสอบวันที่ปัจจุบัน:
mysql> select curdate(); +------------+ | curdate() | +------------+ | 2019-09-21 | +------------+
คำสั่งดึงเฉพาะ Deadline ที่ยังไม่ถึง (>= วันนี้)
mysql> select * from DemoTable1340 where Deadline >= curdate();
ผลลัพธ์ (Deadline 23 และ 28 กันยายน ยังไม่ถึง)
+------------+ | Deadline | +------------+ | 2019-09-23 | | 2019-09-28 | +------------+
กรณีการใช้งานอื่นๆ:
- Deadline ที่ผ่านไปแล้ว:
WHERE Deadline < CURDATE() - Deadline วันนี้:
WHERE Deadline = CURDATE() - รวมเวลา (DATETIME): ใช้
NOW()แทนCURDATE() - เพิ่มช่วงเวลา:
WHERE Deadline >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)(Deadline 7 วันที่แล้วถึงปัจจุบัน)