2011-11-03 25 views
0

所以現在我使用這個查詢:如何在sqlite中獲得特定日期的行?

select * from items where mydate = "2009-11-28" 

而且由於我的日期存儲爲yyyy-mm-dd格式的文本,這應該通過各種手段返回一行匹配日期,對吧?如果不是,我做錯了什麼?

我試着這樣做:

select * from items where releasedate between date("2009-11-28") and date("2009-11-29") 

它工作得很好,但總是有隻是一天似乎並不權之間使用。

所以第二個查詢工作正常,但第一個沒有。有理由嗎?我也試過把日期放在date(),但那也沒用。

+0

你爲什麼在您的查詢「之間」在這裏使用?第一個查詢沒有工作你的情況或什麼? – Hiral

+0

是的,第一個查詢不返回我的行。而且我確實有這個日期。 – James

+0

你確定你的日期是'yyyy-mm-dd'格式,而不是'yyyy-mm-dd H:is'嗎? –

回答

4

嘗試此查詢,

select * from items where mydate like '2009-11-28%' 
+1

這個工程!爲什麼? %做什麼? – James

+0

如果你的數據庫包含日期'2009-11-28 04:40'當你使用像'2009-11-28%'時,它會忽略其他字符(我的意思是'8'字符將被忽略' –

1

你的插入語句是什麼樣的,表的定義是什麼樣的?我敢打賭,你需要將第一個查詢字符串的日期與'date'函數進行轉換,而不是做一個原始字符串。

此外,如果您要轉換實際日期,請確保其確切的「2009-11-28」。如果你做了一個通用的日期參數,你可能不是完全在午夜,而範圍將是一個有效的查詢方式,而不是一個固定的日期值。

0
select * from items where mydate = "2009-11-28" // Here do not use double quotation 

相反,試試這個

select * from items where mydate = '2009-11-28' 
相關問題