SQLite日期比较很奇怪



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

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'

相关内容

  • 没有找到相关文章

最新更新