我将日期存储String
在我的数据库中,格式如下:
YYYY-MM-DD HH:MM:SS
这是支持的格式之一(http://www.sqlite.org/lang_datefunc.html)。现在我想将这些存储的日期(嗯,字符串)与另一个日期进行比较。我的日期存储在 column column_date
,所以我正在尝试这个:
SELECT * FROM MyTable
WHERE
(Date(column_date) >= Date (2000-01-01) AND Datetime(column_date) <= Datetime (2050-01-01))
当我阅读文档时,The date and time functions use a subset of IS0-8601 date and time formats. The date() function returns the date in this format: YYYY-MM-DD.
我想,我做得对 - 我从存储的字符串创建日期并将其与从另一个字符串创建的日期进行比较。
但它不起作用,即使column_date
是今年的日期,而且你可以看到开始和结束日期非常仁慈。也试过这个(使用日期时间而不是日期):
SELECT * FROM MyTable
WHERE
(datetime(column_date) >= Date (2000-01-01) AND datetime(column_date) <= Datetime (2050-01-01))
和这个(使用 between 代替 <= 和 >=)
SELECT * FROM MyTable
WHERE
(Date(column_date) between Date (2000-01-01) AND Datetime (2050-01-01))
以及所有其他可能的组合。我到底做错了什么,是我愚蠢,还是文档在撒谎,或者我错过了一些非常重要的事情?试图找到解决方案几个小时,但没有任何效果......