Bạn có thể tìm kiếm giữa các ngày được lưu trữ dưới dạng varchar bằng cách sử dụng STR_TO_DATE (). Cú pháp như sau -
select * from yourTableName nơi STR_TO_DATE (LEFT (yourColumnName, LOCATE ('', yourColumnName)), '% m /% d /% Y') GIỮA 'yourDateValue1' VÀ 'yourDateValue2 ’;
Để hiểu cú pháp trên, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau -
mysql> tạo bảng SearchDateAsVarchar -> (-> Id int NOT NULL AUTO_INCREMENT, -> ShippingDate varchar (100), -> PRIMARY KEY (Id) ->); Truy vấn OK, 0 hàng bị ảnh hưởng (0,99 giây)Chèn một số bản ghi trong bảng bằng lệnh INSERT. Truy vấn như sau -
mysql> chèn vào các giá trị SearchDateAsVarchar (ShippingDate) ('6/28/2011 9:58 AM'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,19 giây) mysql> chèn vào các giá trị SearchDateAsVarchar (ShippingDate) ('6/18 / 2011 10:50:39 AM '); Truy vấn OK, 1 hàng bị ảnh hưởng (0,55 giây) mysql> chèn vào giá trị SearchDateAsVarchar (ShippingDate) (' 6/22/2011 11:45:40 AM '); Truy vấn OK, 1 hàng bị ảnh hưởng (0,18 giây)Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau -
mysql> select * từ SearchDateAsVarchar;Sau đây là kết quả -
+ ---- + ----------------------- + | Id | Ngày vận chuyển | + ---- + ----------------------- + | 1 | 28/6/2011 9:58 AM || 2 | 18/6/2011 10:50:39 AM || 3 | 22/6/2011 11:45:40 AM | + ---- + ----------------------- + 3 hàng được thiết lập (0,00 giây)Đây là truy vấn để tìm kiếm giữa các ngày được lưu trữ dưới dạng varchar -
mysql> select * from SearchDateAsVarchar whereSTR_TO_DATE (LEFT (ShippingDate, LOCATE ('', ShippingDate)), '% m /% d /% Y') GIỮA'2011-06-20 'VÀ' 2011-06-28 ';Sau đây là kết quả -
+ ---- + ----------------------- + | Id | Ngày vận chuyển | + ---- + ----------------------- + | 1 | 28/6/2011 9:58 AM || 3 | 22/6/2011 11:45:40 AM | + ---- + ----------------------- + 2 hàng được thiết lập (0,00 giây)