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

MySQL: หาความต่างวันระหว่างวันที่ในเรคคอร์ดกับวันนี้ DATEDIFF()


คำอธิบาย

ใช้ 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-08241 วัน241
2018-09-06365 วัน (1 ปี)365
2016-10-261045 วัน (~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;