SQLite
如果将日期存储为ISO8601
格式,最简单的过滤日期的方法是什么?
例如,数据库中的日期存储为(例如)2014-07-01T08:00:00.000+01:00
。
我正在运行查询以查看约会是否冲突。当我运行查询时:
select count(*) from Appointment where (EndDateTime > '2014-07-02 08:30' and StartDateTime < '2014-07-02 08:45')
这是一个简单的查询,以查看是否有其他约会的开始/结束时间越过该约会。对于一个事实,我知道在此查询中应该选择一些约会。例如,我的一个约会有以下几列:
StartDateTime: 2014-07-02T08:00:00.000+01:00
EndDateTime: 2014-07-02T09:00:00.000+01:00
然而,即使我知道我应该得到很多,我也没有结果。我确信我如何在查询中过滤日期存在问题-有什么想法吗?
您在查询中用于比较的文字不是ISO8601的部分标记:
select count(*) from Appointment where (EndDateTime > '2014-07-02 08:30' and StartDateTime < '2014-07-02 08:45')
该T
是日期和时间之间缺少那里。比较文字时,比较将在'T'
vs处停止,' '
并且不考虑时间部分。
您可以在格式模式中使用单引号输出文字T
,例如
yyyy-MM-dd'T'HH:mm
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句