gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 06:18:29 24 4
gpt4 key购买 nike

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'' ' 并且不考虑时间部分。

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

yyyy-MM-dd'T'HH:mm

关于java - SQLite 中使用 ISO8601 格式的日期比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24530299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com