tôi dường như không thể có được kết quả đáng tin cậy từ các truy vấn đối với một cơ sở dữ liệu SQLite sử dụng một chuỗi datetime như một sự so sánh như vậy:SQLite DateTime so
select *
from table_1
where mydate >= '1/1/2009' and mydate <= '5/5/2009'
làm thế nào tôi nên xử lý so sánh datetime để SQLite?
update: lĩnh vực mydate là một kiểu dữ liệu DateTime
Giải pháp:
sau chức năng datetime và có một định dạng chuỗi như YYYY-MM-DD HH: mm: ss i đạt được kết quả tốt như sau
select *
from table_1
where mydate >= Datetime('2009-11-13 00:00:00')
and mydate <= Datetime('2009-11-15 00:00:00')
Định dạng ngày nào là giá trị được lưu trữ trong cột 'mydate'? Tôi đoán nó không phải là một trong những định dạng được hỗ trợ SQLite: http://www.sqlite.org/lang_datefunc.html –
OMG, đó là kiểu dữ liệu datetime – Brad
Việc sử dụng datetime() đó sẽ dẫn đến giá trị chính xác mà bạn đã cung cấp , không có lý do gì để sử dụng nó ở đây: chỉ cần sử dụng chuỗi thay thế. Và nếu bạn chỉ xử lý các ngày, bạn nên xóa các phần thời gian bằng không --- về cơ bản đảm bảo cả hai bên đều có cùng định dạng. (Nếu không ''2009-11-13'', cho mydate, sẽ nhỏ hơn'' 2009-11-13 00: 00: 00''.) –