2009-10-14 303 views
0

我知道如何在Oracle中完成它,但在mySQL中找不到相同的函數。 嘗試谷歌它..但無法找到它。如何在mySQL中查詢兩天之間的日期字段

我有一個表,有一個字段名「CREATE_DATE」,屬性爲datetime 所以字段值的格式類似於「2009-09-25 11時48分24秒」

現在我想添加日期條件,我想在2009/09/01至2009/10/14之間找到create_date my sql命令: 其中1 = 1和date_format(create_date,'%d /%m /%Y')BETWEEN '01/09/2009' AND '14 /2009分之10'

它OK..I可以得到rowdata 但是當我開始改變日期2009/09/30,結束日期是相同

DATE_FORMAT(CREATE_DATE, '%d /%米/%Y')之間的'30/09/2009' AND '14/10/2009'

和無結果... 但如果我將開始日期更改爲2009/10/01,我可以再次獲得結果。 我只是想知道發生了什麼?它應該罰款到

回答

1

我認爲你使用一個函數(DATE_FORMAT)上的錯誤的事情:你應該STR_TO_DATE你的參數,並使MySQL做日期範圍比較,而不是將行值轉換爲字符串和做一個字符串範圍比較(我甚至不確定這是否合理或在所有情況下都有效)。試試這個:

SELECT ... 
    FROM my_table t 
WHERE t.create_date BETWEEN STR_TO_DATE('2009/09/01', '%Y/%m/%d') 
         AND STR_TO_DATE('2009/10/01', '%Y/%m/%d') 

我認爲那樣會更好。

相關問題