繁体   English   中英

使用ISO8601格式的SQLite中的日期比较

[英]Date comparison in SQLite using ISO8601 format

如果日期以ISO8601格式存储,在SQLite筛选日期的最简单方法是什么?

例如,我数据库中的日期存储为(例如) 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'' '停止,并且不考虑时间部分。

您可以在格式模式中使用单引号输出文字T ,例如

yyyy-MM-dd'T'HH:mm

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM