Yêu cầu
Cột AdmissionDate lưu chuỗi như '13-Sep-2019'. Cần lọc các bản ghi có ngày nhỏ hơn hôm nay (giả sử hôm nay là 14-Sep-2019).
1. Tạo bảng
mysql> create table DemoTable (
AdmissionDate varchar(50)
);
Query OK, 0 rows affected (0.63 sec)
2. Chèn dữ liệu
mysql> insert into DemoTable values('15-Sep-2019');
mysql> insert into DemoTable values('14-Sep-2019');
mysql> insert into DemoTable values('13-Sep-2016');
mysql> insert into DemoTable values('13-Sep-2019');
mysql> insert into DemoTable values('13-Sep-2020');
3. Xem dữ liệu
mysql> select * from DemoTable;
+---------------+ | AdmissionDate | +---------------+ | 15-Sep-2019 | | 14-Sep-2019 | | 13-Sep-2016 | | 13-Sep-2019 | | 13-Sep-2020 | +---------------+ 5 rows in set (0.00 sec)
4. Truy vấn so sánh sau khi chuyển đổi
mysql> select * from DemoTable
where str_to_date(AdmissionDate, '%d-%b-%Y') < CURDATE();
Kết quả (chỉ các ngày trước 14-Sep-2019):
+---------------+ | AdmissionDate | +---------------+ | 13-Sep-2016 | | 13-Sep-2019 | +---------------+ 2 rows in set (0.00 sec)
Lưu ý: %b là tên tháng viết tắt 3 chữ cái (Jan, Feb, ...). CURDATE() trả về ngày hiện tại kiểu DATE.