คำนวณความแตกต่างของวันที่ด้วย 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()- วันที่ปัจจุบัน