【发布时间】:2018-06-21 02:55:02
【问题描述】:
我在 SQLite 数据库的一个表(history)中有两个文本列(valid_from 和 valid_to),我在其中存储日期dd/MM/yyyy 格式。
现在我正在运行以下查询以获取 2018 年 6 月 1 日至 2018 年 6 月 30 日之间的所有记录,但我没有得到任何结果:
尝试 1:
SELECT * FROM history WHERE valid_from >= datetime('01/06/2018') AND valid_to <= datetime('30/06/2018');
尝试 2:
SELECT * FROM history WHERE cast(strftime('%Y%m%d', valid_from) as integer) >= cast(strftime('%Y%m%d', '01/06/2018') as integer) AND cast(strftime('%Y%m%d', valid_to) as integer) <= cast(strftime('%Y%m%d', '30/06/2018') as integer);
没有任何记录。我错过了什么吗?
【问题讨论】:
-
不要在 SQLite 中以
dd/MM/yyyy格式存储您的日期。始终使用 ISO 格式yyyy/MM/dd代替。有一些变通方法,但它们很难看,最好修复您的数据。 -
@TimBiegeleisen - 它已经像这样存储了。我对此无能为力。我只需要找到这种格式的解决方案。