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

เปรียบเทียบคอลัมน์ DateTime เฉพาะวันที่ใน MySQL

วิธีเปรียบเทียบคอลัมน์ DateTime โดยดูเฉพาะวันที่ (ไม่รวมเวลา) ใน MySQL

ใช้ฟังก์ชัน DATE() เพื่อแยกส่วนวันที่ออกมาจากคอลัมน์ DATETIME หรือ TIMESTAMP ก่อนทำการเปรียบเทียบ

SELECT * FROM yourTableName WHERE DATE(yourColumnName) = 'yourDateValue';

ตัวอย่างการใช้งาน

สร้างตารางและเพิ่มข้อมูล:

mysql> create table DemoTable (ArrivalTime datetime);
mysql> insert into DemoTable values('2019-01-31 02:34:56');
mysql> insert into DemoTable values('2019-04-09 18:20:58');
mysql> insert into DemoTable values('2019-05-11 19:45:23');
mysql> insert into DemoTable values('2019-02-03 21:10:02');

ข้อมูลทั้งหมด:

+---------------------+
| ArrivalTime         |
+---------------------+
| 2019-01-31 02:34:56 |
| 2019-04-09 18:20:58 |
| 2019-05-11 19:45:23 |
| 2019-02-03 21:10:02 |
+---------------------+

คิวรีเปรียบเทียบเฉพาะวันที่ (ค้นหาวันที่ 2019-04-09):

mysql> select * from DemoTable where DATE(ArrivalTime) = '2019-04-09';

ผลลัพธ์:

+---------------------+
| ArrivalTime         |
+---------------------+
| 2019-04-09 18:20:58 |
+---------------------+

เทคนิคเพิ่มเติม: หากต้องการค้นหาช่วงวันที่ ให้ใช้ BETWEEN หรือเปรียบเทียบแบบช่วง:

SELECT * FROM yourTable WHERE DATE(yourColumn) BETWEEN '2019-01-01' AND '2019-12-31';

วิธีนี้ช่วยให้ดัชนี (Index) ทำงานได้ดีกว่าการใช้ฟังก์ชันบนคอลัมน์โดยตรงในบางกรณี