我有按ISO8601格式以YYYY:MM:SS格式存储的日期时间信息。但是,如果存储日期晚于当前日期时间,则需要从SQLite数据库获取信息。
下面是我试图实现的一个例子:
SELECT * FROM mydb WHERE date > datetime('now')问题是,SQLite函数datetime('now')以与上面相同的格式返回日期,但没有'T‘字面值,因此呈现以ISO8601格式存储的日期时间值,该值与datetime('now')是不可比拟的。
是否可以在不更改数据库值的情况下进行此比较?
发布于 2015-10-14 14:40:15
可以将数据库值转换为相同的格式:
SELECT * FROM MyTable WHERE datetime(date) > datetime('now');但是,最好将比较值转换为数据库格式(直接访问列值可以使用索引):
SELECT * FROM MyTable WHERE date > strftime('%Y-%m-%dT%H:%M:%S', 'now');https://stackoverflow.com/questions/33128312
复制相似问题