SQLite日期比较很奇怪

时间:2012-06-21 17:00:18

标签: sqlite datetime date compare

我将日期作为字符串存储在我的数据库中,格式为:

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行,因为我使用的是>=而不是>

我错了什么?

1 个答案:

答案 0 :(得分:1)

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'