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

MySQL เลือกวันที่เท่ากับวันนี้และส่งคืนผลลัพธ์สำหรับวันที่เดียวกันหรือไม่


หากต้องการทราบวันที่ของวันนี้ ให้ใช้ฟังก์ชัน CURDATE() ในตัว CURDATE() ให้เฉพาะวันที่ปัจจุบันไม่ใช่เวลา ในการรับเร็กคอร์ดสำหรับวันเดียวกัน คุณสามารถลองใช้ไวยากรณ์ต่อไปนี้ −

select yourColumnName1,yourColumnName2,......,yourColumnNameN,DATE_FORMAT(yourDateColumnName, '%Y-%m-%d') จาก yourTableNameWHERE DATE(yourDateColumnName) =CURDATE();

เพื่อให้เข้าใจแนวคิดข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ หนึ่งในคอลัมน์เหล่านี้จะมีประเภทข้อมูลวันที่และเวลาเพื่อแสดงวันที่ -

mysql> สร้างตาราง GmailSignIn −> ( −> UserId int, −> UserName varchar(200), −> DateOfSignIn datetime −> );Query OK, 0 แถวได้รับผลกระทบ (1.56 วินาที)

ตอนนี้คุณสามารถแทรกบางระเบียนลงในตารางด้วยความช่วยเหลือของคำสั่งแทรก เราได้ตั้งวันที่ปัจจุบันไว้ด้วย คือ 2018-12-06

แบบสอบถามมีดังนี้ −

mysql> แทรกลงในค่า GmailSignIn (222111,'John',now());Query OK, 1 แถวได้รับผลกระทบ (0.15 วินาที)mysql> แทรกลงในค่า GmailSignIn (333222,'Johnson',curdate());Query ตกลง ได้รับผลกระทบ 1 แถว (0.18 วินาที)mysql> แทรกลงในค่า GmailSignIn (444333,'Carol',date_add(curdate(), ช่วง 1 วัน));แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> แทรกลงในค่า GmailSignIn (555444,'David',date_add(curdate(),interval -1 day));แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.83 วินาที)

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

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

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

<ก่อนหน้า>+---------+----------+---------------------+| รหัสผู้ใช้ | ชื่อผู้ใช้ | DateOfSignIn |+---------+----------+---------------------+| 222111 | จอห์น | 2018-12-06 19:13:30 || 333222 | จอห์นสัน | 2018-12-06 00:00:00 || 444333 | แครอล | 2018-12-07 00:00:00 || 555444 | เดวิด | 2018-12-05 00:00:00 |+-------+----------+------------------ ---+4 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อเลือกวันที่เท่ากับวันนี้และแสดงบันทึกสำหรับวันที่เดียวกัน -

mysql> เลือก UserId,UserName,DateOfSignIn,DATE_FORMAT(DateOfSignIn, '%Y-%m-%d') จาก GmailSignIn −> โดยที่ date(DateOfSignIn) =curdate();

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

<ก่อนหน้า>+---------+----------+---------------------+---- ------------------------------------+| รหัสผู้ใช้ | ชื่อผู้ใช้ | วันที่เข้าสู่ระบบ | DATE_FORMAT(DateOfSignIn, '%Y-%m-%d') |+-----------+----------+------------- ----------------------------------------------------------------------+| 222111 | จอห์น | 2018-12-06 19:13:30 | 2018-12-06 || 333222 | จอห์นสัน | 2018-12-06 00:00:00 | 2018-12-06 |+-----------+----------+---------------------+- --------------------------------------+2 แถวในชุด (0.00 วินาที)