>我将日期作为字符串存储在我的数据库中,格式如下:
YYYY-MM-DD HH:MM
在我的数据库中,我有行(所有列都是字符串):
COL1 | COL2
----------------------------------
'2012-06-21 18:53' | 'item1'
'2012-06-21 18:54' | 'item2'
'2012-06-21 18:55' | 'item3'
现在我想比较这些存储的日期(好吧,字符串),这非常非常奇怪:
此查询
select *
from MyTable
where col1 > Datetime('2012-06-21 18:53')
返回 2 行(除第一行外的所有行) - 这是正确的。
但是这个查询
select *
from MyTable
where col1 >= Datetime('2012-06-21 18:53')
也只返回 2 行,但它应该返回所有 3 行,因为我使用 >=
而不是 >
.
我做错了什么?
sqlite> SELECT datetime('2012-06-21 18:53');
2012-06-21 18:53:00
datetime() 返回与数据库字段格式不同的字符串。您可以只将字符串用于 WHERE,例如
select *
from MyTable
where col1 >= '2012-06-21 18:53'