1

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

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 行,就像我使用>=的那样,而不是>.

我做错了什么?

4

1 回答 1

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'
于 2012-06-21T17:09:50.970 回答