2017-02-18 811 views
2

我從mysql數據庫查詢日期。當我嘗試僅選擇從某日到某日之間的日期時,我沒有收到預期的結果。如何檢查日期是否在兩個日期之間mysql?

我的查詢:

select * from tbl_billing where date BETWEEN '09-02-2017' and '10-02-2017' 

我的輸出:

09-02-2017 
10-02-2017 
10-01-2017 
09-01-2017 
09-01-2017 

我想要的結果:

09-02-2017 
10-02-2017 
+0

什麼是你在MySQL表日期字段的類型? –

+1

''dd-mm-yyyy''不是有效的MySQL [日期文字](https://dev.mysql.com/doc/en/date-and-time-literals.html)。 – eggyal

回答

1

您可以使用SQL規範日期格式

select * from tbl_billing where date BETWEEN '2017-02-09' and '2017-02-10' 

或轉換正確使用STR_TO_DATE

select * from tbl_billing where date BETWEEN str_to_date('09-02-2017', '%d-%m-%Y') 
      and str_to_date('10-02-2017', '%d-%m-%Y') 

,但如果你還爲date一個varchar,那麼你必須將這一欄也

select * from tbl_billing where str_to_date(date,'%d-%m-%Y') BETWEEN str_to_date('09-02-2017', '%d-%m-%Y') 
      and str_to_date('10-02-2017', '%d-%m-%Y') 
+0

你好羅馬謝謝你的建議我,但問題是我的日期數據類型是varchar,我不能改變它,因爲我在很多頁面中使用,所以它不能將數據類型varchar更改爲日期。如果你有任何解決方案,請告訴我羅馬先生 – phpguru

+1

@phpguru改變它。更改頁面。否則沒有'大師'! – Strawberry

+0

@phpguru如果你也有日期列作爲varchar,那麼你也必須轉換列..答案更新..我知道 – scaisEdge

相關問題