เพื่อให้ได้จำนวนวันระหว่างวันที่ปัจจุบันและฟิลด์วันที่ ไวยากรณ์จะเป็นดังนี้ -
SELECT DATEDIFF(CURDATE(),STR_TO_DATE(yourColumnName, '%d-%m-%Y')) เป็นชื่ออื่นจาก yourTableName
เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −
mysql> สร้างตาราง DateDifferenceDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> ArrivalDate varchar(100) -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.55 วินาที)
แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −
mysql> แทรกลงในค่า DateDifferenceDemo(ArrivalDate) ('12-10-2011'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า DateDifferenceDemo (ArrivalDate) ('01-12-2013');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.07 วินาที)mysql> แทรกลงในค่า DateDifferenceDemo(ArrivalDate) ('31-10-2014'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.08 วินาที) mysql> แทรกลงในค่า DateDifferenceDemo (ArrivalDate) ( '12-04-2016'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.09 วินาที) mysql> แทรกลงในค่า DateDifferenceDemo (ArrivalDate) ('20-08-2018'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.07 วินาที) mysql> แทรกลงในค่า DateDifferenceDemo(ArrivalDate) ('11-03-2019'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.07 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −
mysql> เลือก *จาก DateDifferenceDemo;
นี่คือผลลัพธ์ -
<ก่อนหน้า>+----+-------------+| รหัส | วันที่มาถึง |+----+-------------+| 1 | 12-10-2011 || 2 | 01-12-2013 || 3 | 31-10-2014 || 4 | 12-04-2016 || 5 | 20-08-2018 || 6 | 11-03-2019 |+----+--------------------+6 แถวในชุด (0.00 วินาที)ต่อไปนี้เป็นแบบสอบถามเพื่อรับจำนวนวันระหว่างวันที่ปัจจุบันและฟิลด์วันที่ -
mysql> SELECT DATEDIFF(CURDATE(),STR_TO_DATE(ArrivalDate, '%d-%m-%Y')) เป็นจำนวนวันจาก DateDifferenceDemo;
นี่คือผลลัพธ์ -
<ก่อนหน้า>+-------------+| จำนวนวัน |+-------------+| 2708 || 2470 || 1593 || 1064 || 204 || 1 |+--------------+6 แถวในชุด (0.00 วินาที)