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

MySQL: กรองข้อมูลตามเดือน เมื่อ Date เก็บเป็น VARCHAR ด้วย STR_TO_DATE() และ MONTH()


กรองตามเดือนเมื่อ Date เป็น VARCHAR ใช้ STR_TO_DATE() แปลง แล้วค่อย用 MONTH()

ตัวอย่าง

mysql> CREATE TABLE DemoTable (DueDate VARCHAR(100));
mysql> INSERT INTO DemoTable VALUES ('06-19-2019'), ('01-31-2018'), ('12-01-2016');

ข้อมูล

+------------+
| DueDate    |
+------------+
| 06-19-2019 |
| 01-31-2018 |
| 12-01-2016 |
+------------+

Query: กรองเดือน 06 (มิถุนายน)

mysql> SELECT * FROM DemoTable
    -> WHERE MONTH(STR_TO_DATE(DueDate, '%m-%d-%Y')) = 6;

ผลลัพธ์

+------------+
| DueDate    |
+------------+
| 06-19-2019 |
+------------+