我有一个格式为YYYY-MM-DDTHH:MM:SS的SQLite时间戳(例如: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";
但是这两个都不返回任何结果。我想念什么?
最佳答案
在字段具有时间成分的情况下进行日期范围查询时,请始终执行以下操作:
where YourDateField >= the first day of your range
and YourDateField < the day after the the last day of your range.
其他一切都是细节。另外,只要您具有日期或日期时间数据类型,就不必担心格式。唯一重要的是显示。
它看起来效率低下,因为您必须做一些额外的输入,但是查询的运行速度要比使用以下函数快:
where somefunction(YourDateField) = something.
关于sql - 在SQLite时间戳中匹配整天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17886753/