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

ดึงข้อมูลจากคอลัมน์ DATETIME ใน MySQL เปรียบเทียบเฉพาะวันที่ ไม่สนใจช่องว่าง

บทความนี้สาธิตการใช้ DATE() ร่วมกับ TRIM() เพื่อดึงเฉพาะส่วนวันที่จากคอลัมน์ DATETIME และเปรียบเทียบ โดยกำจัดช่องว่างที่อาจมีอยู่รอบค่า

สร้างตารางและข้อมูลทดสอบ (มีช่องว่างหน้า/หลังค่า)

mysql> CREATE TABLE DemoTable661 (Duedate DATETIME);
Query OK, 0 rows affected (0.57 sec)

mysql> INSERT INTO DemoTable661 VALUES(' 2019-01-21 12:02:21');
mysql> INSERT INTO DemoTable661 VALUES(' 2019-07-11 11:55:59 ');
mysql> INSERT INTO DemoTable661 VALUES('2019-11-21 04:00:59 ');

คิวรีค้นหาเฉพาะวันที่ 2019-07-11

mysql> SELECT * FROM DemoTable661 
WHERE TRIM(DATE(Duedate)) = '2019-07-11';

ผลลัพธ์

+---------------------+
| Duedate             |
+---------------------+
| 2019-07-11 11:55:59 |
+---------------------+

คำอธิบาย:

  • DATE(Duedate) - ดึงเฉพาะส่วนวันที่ (YYYY-MM-DD) จาก DATETIME
  • TRIM() - ลบช่องว่างหน้าและหลังสตริง (ป้องกันข้อมูลที่มี space ติดมาด้วย)
  • MySQL จะแปลง '2019-07-11' เป็น DATE อัตโนมัติเมื่อเปรียบเทียบกับ DATE()

แนะนำ: หากข้อมูลสะอาด ไม่ต้องใช้ TRIM() ก็ได้ แต่ใช้เผื่อไว้ปลอดภัยกว่า