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

รับจำนวนวันระหว่างวันที่ปัจจุบันและฟิลด์วันที่?


เพื่อให้ได้จำนวนวันระหว่างวันที่ปัจจุบันและฟิลด์วันที่ ไวยากรณ์จะเป็นดังนี้ -

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 วินาที)