Mik*_*ter 2 java sqlite iso8601
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
Run Code Online (Sandbox Code Playgroud)
然而,即使我知道自己应该得到充足,我也没有任何结果.我确信在我的查询中如何过滤日期存在问题 - 任何想法?
在查询中用于比较的文字不是部分ISO8601标记:
select count(*) from Appointment where (EndDateTime > '2014-07-02 08:30' and StartDateTime < '2014-07-02 08:45')
Run Code Online (Sandbox Code Playgroud)
该T是日期和时间之间缺少那里.比较文字时,比较在'T'vs. ' '时停止,时间部分不予考虑.
您可以使用格式模式中的单引号输出文字T,例如
yyyy-MM-dd'T'HH:mm
Run Code Online (Sandbox Code Playgroud)