我似乎无法从使用日期时间字符串作为比较的sqlite数据库的查询中获得可靠的结果,因此:
select *
from table_1
where mydate >= '1/1/2009' and mydate <= '5/5/2009'我应该如何处理与sqlite的日期时间比较?
更新:字段mydate是一个DateTime数据类型
发布于 2009-12-30 01:33:02
SQLite没有专用的datetime types,但有一个few datetime functions。遵循那些函数理解的字符串表示格式(实际上只有格式1-10) (将值存储为字符串),然后就可以使用它们,加上字符串上的字典序比较将匹配datetime比较(只要你不试图比较日期与时间或日期时间与时间,这本来就没有太大意义)。
根据您使用的语言,您甚至可以获得automatic conversion。(这不适用于SQL语句中的比较,但会让您的工作更轻松。)
发布于 2009-12-30 02:17:20
为了解决这个问题,我将日期存储为YYYYMMDD。因此,where mydate >= '20090101' and mydate <= '20050505'
它一直都很好用。您可能只需要编写一个解析器来处理用户输入日期的方式,这样您就可以将它们转换为YYYYMMDD。
发布于 2011-09-06 16:08:56
我最近遇到了同样的问题,我是这样解决的:
SELECT * FROM table WHERE
strftime('%s', date) BETWEEN strftime('%s', start_date) AND strftime('%s', end_date)https://stackoverflow.com/questions/1975737
复制相似问题