คำอธิบาย
ใช้ DATEDIFF() คำนวณจำนวนวันระหว่าง 2 วันที่ (Date1 - Date2) ร่วมกับ NOW() หรือ CURDATE() สำหรับวันปัจจุบัน
ขั้นตอนการสร้างตารางและข้อมูลตัวอย่าง
สมมติวันนี้คือ 2019-09-06
mysql> create table DemoTable (
AdmissionDate date );
Query OK, 0 rows affected (0.54 sec)
การเพิ่มข้อมูล
mysql> insert into DemoTable values('2019-01-08');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values('2018-09-06');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values('2016-10-26');
Query OK, 1 row affected (0.17 sec)
แสดงข้อมูลทั้งหมด
mysql> select * from DemoTable;
ผลลัพธ์:
+---------------+ | AdmissionDate | +---------------+ | 2019-01-08 | | 2018-09-06 | | 2016-10-26 | +---------------+ 3 rows in set (0.00 sec)
คิวรี่หาความต่างวันจากวันนี้
mysql> select datediff(now(), AdmissionDate) from DemoTable;
ผลลัพธ์
+-------------------------------+ | datediff(now(), AdmissionDate) | +-------------------------------+ | 241 | | 365 | | 1045 | +-------------------------------+ 3 rows in set (0.00 sec)
คำอธิบายการคำนวณ
| AdmissionDate | วันนี้ (2019-09-06) | ความต่าง (วัน) |
|---|---|---|
| 2019-01-08 | 241 วัน | 241 |
| 2018-09-06 | 365 วัน (1 ปี) | 365 |
| 2016-10-26 | 1045 วัน (~2.86 ปี) | 1045 |
ฟังก์ชันวันที่เกี่ยวข้อง
- DATEDIFF(date1, date2): คืนค่า date1 - date2 (จำนวนวัน, สามารถเป็นลบได้)
- TIMESTAMPDIFF(unit, date1, date2): ระบุหน่วย (DAY, MONTH, YEAR, HOUR, MINUTE, SECOND)
- TIMEDIFF(time1, time2): ความต่างเวลา (TIME type)
ตัวอย่าง TIMESTAMPDIFF
SELECT TIMESTAMPDIFF(MONTH, AdmissionDate, NOW()) as Months_Diff FROM DemoTable;