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

เราสามารถเลือกแถวโดย DATEPART() ใน MySQL ได้หรือไม่ เป็นไปได้ไหม?


ไม่มีฟังก์ชัน DATEPART() ใน MySQL คุณต้องใช้ฟังก์ชัน MONTH() เพื่อแยกชื่อเดือนออกจากคอลัมน์วันที่ ไวยากรณ์มีดังนี้:

SELECT *FROM yourTableName WHERE MONTH(yourDateColumnName)=yourValue;

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้:

mysql> สร้างตาราง SelectRowFromDatePart -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> วันที่เข้าสู่ระบบ -> คีย์หลัก (Id) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (2.42 วินาที)

ตอนนี้คุณสามารถแทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้:

mysql> แทรกลงในค่า SelectRowFromDatePart(LoginDate) (curdate()); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.21 วินาที)mysql> แทรกลงในค่า SelectRowFromDatePart (LoginDate) (date_add (curdate (), ช่วงเวลา -3 ปี));แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.19 วินาที)mysql> แทรกลงในค่า SelectRowFromDatePart(LoginDate) ('2014-05-21'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.21 วินาที) mysql> แทรกลงในค่า SelectRowFromDatePart (LoginDate) ( '2015-08-25'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.23 วินาที) mysql> แทรกลงในค่า SelectRowFromDatePart (LoginDate) ('2018-12-31'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่า SelectRowFromDatePart(LoginDate) ('2011-12-21'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.21 วินาที) mysql> แทรกลงในค่า SelectRowFromDatePart (LoginDate) ('2013-10-02'); แบบสอบถามตกลง 1 แถวที่ได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า SelectRowFromDatePart (LoginDate) ('2006-12-11'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า SelectRowFromDatePart (LoginDate) ('2010-03- 09');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.40 วินาที)my sql> แทรกลงในค่า SelectRowFromDatePart(LoginDate) ('2012-12-12'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.70 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้:

mysql> เลือก *จาก SelectRowFromDatePart;

ต่อไปนี้เป็นผลลัพธ์:

<ก่อนหน้า>+----+-----------+| รหัส | วันที่เข้าสู่ระบบ |+----+-----------+| 1 | 2019-01-31 || 2 | 2016-01-31 || 3 | 2014-05-21 || 4 | 2015-08-25 || 5 | 2018-12-31 || 6 | 2011-12-21 || 7 | 2013-10-02 || 8 | 2006-12-11 || 9 | 2010-03-09 || 10 | 2012-12-12 |+----+-----------+10 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อเลือกแถวตามวันที่ซึ่งคือ MONTH():

mysql> เลือก *จาก SelectRowFromDatePart โดยที่ MONTH(LoginDate)=12;

ต่อไปนี้เป็นผลลัพธ์:

<ก่อนหน้า>+----+-----------+| รหัส | วันที่เข้าสู่ระบบ |+----+-----------+| 5 | 2018-12-31 || 6 | 2011-12-21 || 8 | 2006-12-11 || 10 | 2012-12-12 |+----+-----------+4 แถวในชุด (0.00 วินาที)