Computer >> Máy Tính >  >> Lập trình >> MySQL

Tìm kiếm GIỮA các ngày được lưu trữ dưới dạng varchar trong MySQL?

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)