2012-06-21 50 views
1

我存儲日期爲字符串在我的數據庫,格式如下: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行,爲我所用,而不是>=>

我錯了什麼?

回答

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' 
+0

完全一樣的東西,我注意到幾秒鐘之前!有趣......好吧,還是不能理解它,因爲我的字符串格式是支持的,請看這裏http://www.sqlite.org/lang_datefunc.html,YYYY-MM-DD HH:MM。無論如何,它的工作原理... – qkx