1

我有一个格式为 YYYY-MM-DDTHH:MM:SS 的 SQLite 时间戳(例如: 2013-07-26T08:01:05-04:00 )我想做一个匹配特定条目的所有条目的查询日 (2013-07-26)

从这样的文章,我知道您可以做出大于/小于这样的比较:

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";

但是这两个都没有返回任何结果。我错过了什么?

4

1 回答 1

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.
于 2013-07-26T16:54:29.723 回答