我有一个格式为YYYY-MM-DDTHH的SQLite时间戳:MM:SS(例如:2013-07-26T08:01:05-04:00 )我想创建一个匹配特定日期(2013-07-26)
的所有条目的查询来自这样的文章one我知道你可以像这样做比大于/小于这样的比赛:
select * from foo created_at > "2013-07-25" and created_at < "2013-07-26";
但动态编程似乎很奇怪且效率低下。我想做的是查询如下:
select * from foo created_at = "2013-07-25";
或
select * from foo created_at like "2013-07-25";
但这两个都没有返回任何结果。我错过了什么?
答案 0 :(得分:1)
当字段具有时间组件时进行日期范围查询时,请始终执行以下操作:
where YourDateField >= the first day of your range
and YourDateField < the day after the the last day of your range.
其他一切都是细节。此外,只要您有日期或日期时间数据类型,请不要担心格式。唯一重要的是展示。
它可能看起来效率低下,因为你必须做一些额外的打字,但查询运行速度比使用这样的函数要快:
where somefunction(YourDateField) = something.