2011-07-18 58 views
0

我試圖選擇兩個日期之間的特定日期。它存儲在數據庫中的形式是M/d/yyyy。我想要做的是傳遞兩個日期,我想選擇這兩個日期之間的列的所有數據。我知道數據庫中有數據,但它不會爲某些日期帶來任何內容。對於某些日期,它會帶來數據,但在某些日期它會帶來數據。SQL語句不會返回兩個日期之間的值

實施例:

當我選擇2011年7月10日作爲第一日期,並且作爲第二日期2011/7/16,它帶來的數據。但是當我選擇2011年7月9日作爲第一次約會和2011年7月16日的第二次約會時,它不會帶來任何東西。

這裏是我的查詢:

Cursor cursor = db.query(CONTACT_DATA, new String[] { "duration" }, 
       "date >= ? AND date <= ?", 
       new String[] { firstDate, secondDate }, null, null, null); 

如果任何人都可以用這個問題有所幫助。謝謝!

+0

看看是否有幫助:http://stackoverflow.com/questions/3838527/android-java-date-difference-in-days – nickfox

+0

哇,我嘗試發佈一個答案,它作爲評論發佈。我做了3次。 – nickfox

回答

0

我將存儲日期爲毫秒(時代格式),所以它更容易比較。當打印日期時,我會將其轉換。

0

SQLite沒有本機日期類型;它比較你的日期作爲字符串。這就是爲什麼當日期在相同的月份和年份,並且在一天中具有相同的數字位數時,查詢似乎有效,但這只是運氣。

通常,SQLite用戶使用ISO-8601格式(YYYY-MM-DD)格式化它們的日期字符串,該格式正確地按字符串排序。

SQLite的確實有date functions - 如果您的日期均形成良好您可以使用這些,與ltrim and rtrim沿着你的日期轉換爲在查詢中使用的格式。

+0

因此,我應該用來在兩個日期之間進行查詢的正確形式是:YYYY-MM-DD?謝謝。 – rogcg

+0

是的,只要這也是您要比較的列中數據的格式。 –

相關問題