SQLite日期时间与ISO8601中的“now”进行比较

时间:2015-10-14 14:35:50

标签: sqlite date datetime

我有按照ISO8601格式以YYYY-mm-ddTHH:MM:SS格式存储的日期时间信息。但是,如果存储的日期晚于当前日期时间,我想从我的SQLite数据库中获取信息。

以下是我正在尝试实施的示例:

SELECT * FROM mydb WHERE date > datetime('now')

问题是SQLite函数datetime('now')以与上面相同的格式返回日期但没有'T'文字,因此呈现的ISO8601格式的存储日期时间值与datetime无法比较('现在')。

有没有办法在不更改数据库值的情况下进行此比较?

1 个答案:

答案 0 :(得分:2)

您可以将数据库值转换为相同的格式:

SELECT * FROM MyTable WHERE datetime(date) > datetime('now');

但是,将比较值转换为数据库格式会更好(直接访问列值可以使用索引):

SELECT * FROM MyTable WHERE date > strftime('%Y-%m-%dT%H:%M:%S', 'now');