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

หาจำนวนวันระหว่างวันที่ปัจจุบันกับคอลัมน์วันที่ใน MySQL

คำนวณความแตกต่างของวันที่ด้วย DATEDIFF

ใช้ DATEDIFF() ร่วมกับ STR_TO_DATE() แปลงสตริงเป็นวันที่ แล้วคำนวณกับ CURDATE()

ไวยากรณ์

SELECT DATEDIFF(CURDATE(), STR_TO_DATE(yourColumn, '%d-%m-%Y')) AS alias FROM yourTable;

ตัวอย่าง

CREATE TABLE DateDifferenceDemo (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ArrivalDate VARCHAR(100)
);

INSERT INTO DateDifferenceDemo(ArrivalDate) VALUES
('12-10-2011'), ('01-12-2013'), ('31-10-2014'),
('12-04-2016'), ('20-08-2018'), ('11-03-2019');

คำสั่งคำนวณ

SELECT DATEDIFF(CURDATE(), STR_TO_DATE(ArrivalDate, '%d-%m-%Y')) AS NumberOfDays
FROM DateDifferenceDemo;

ผลลัพธ์ (สมมติวันนี้ 2019-03-12)

+--------------+
| NumberOfDays |
+--------------+
| 2708         |
| 1927         |
| 1593         |
| 1064         |
| 204          |
| 1            |
+--------------+

รูปแบบวันที่ที่รองรับ

  • %d-%m-%Y - DD-MM-YYYY (31-12-2023)
  • %Y-%m-%d - YYYY-MM-DD (2023-12-31)
  • %m/%d/%Y - MM/DD/YYYY (12/31/2023)

ฟังก์ชันเกี่ยวข้อง

  • DATEDIFF(date1, date2) - คืนจำนวนวัน (date1 - date2)
  • TIMESTAMPDIFF(DAY, date1, date2) - ระบุหน่วยได้ (DAY, MONTH, YEAR)
  • CURDATE() - วันที่ปัจจุบัน