2014-09-30 31 views
0

我已經將我的日期和時間存儲在數據庫中,格式如下,格式爲TEXT。Sqlite只能得到MM/dd/yyyy的日期HH:mm:ss格式

MM/DD/YYYY HH:MM:SS

我想只能從昨天做這個選擇所有記錄:

SELECT * from source_tbl where date_time = (select max(date_time) 
    from source_tbl 
    WHERE date_time < DATE('now', '-1 day')) 

我知道,如果我只有MM/dd/yyyy在數據庫中,那麼我的上面的查詢將正常工作,但在我的情況下,我有HH:mm:ss所以它不會工作。

但是有什麼辦法只能得到MM/dd/yyyy部分,然後應用我的上述查詢,或者以任何方式做到這一點?

+0

'MM/dd/yyyy'本身也不起作用。如重複問題所示,比較僅適用於支持的日期格式。另見[this](http://stackoverflow.com/questions/26108827/sqlite-date-is-greater-than-other-date-eg-25-09-2014-doesnt-work)和[that](http ://stackoverflow.com/questions/21159031/sort-date-stored-in-sqlite-database)。 – 2014-10-01 07:50:32

+0

@CL。最後兩個問題。 ** 1。**如果我將格式更改爲'yyyy-MM-dd HH:mm:ss',那麼仍然沒有機會從昨天選擇所有記錄? ** 2。**或者,如果我將date_time列的數據類型更改爲** Date **,那麼可以獲取日期部分並應用我的上述查詢? – 2014-10-01 08:51:05

+1

1.當然有。 2. SQLite [沒有數據類型](http://www.sqlite.org/datatype3.html)。 – 2014-10-01 09:13:36

回答

-1

您需要將您的數據和您的數值轉換爲比較的無時間形式。沿着這些線的東西可能會工作:

SELECT * FROM source_tbl 
WHERE date(date_time) = date('now', '-1 day'); 

這將從昨天選擇所有記錄。您的原始查詢令我困惑,是否只需要從昨天開始記錄一條記錄,或者所有記錄,但是如果您需要,您應該可以爲該查詢添加條件。

+0

'date'函數不處理這種格式。 – 2014-09-30 21:00:25

相關問題