sql - 在SQLite时间戳中匹配整天

标签 sql sqlite timestamp

我有一个格式为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/

相关文章:

使用左连接时 MySQL 限制 "main"结果?

c# - SQL to LINQ 获取匹配所有值的所有记录

python - 在 SQLite3 中使用 UPDATE

c# - Fluent Nhibernate 错误外键

android - android中的SQLException错误处理

java - 16 位时间戳转 Java 日期格式

MySQL 加入 : Omit ALL repeating rows IF one row meets a condition

mysql - 使用@rownum :=@rownum+1 AS rownum 枚举 SQL 中的每条记录

将日期转换为纪元时间忽略系统时区

r - 如何通过使用 R 中时间序列中的第一个和最后一个时间戳来定义遭遇时间段