2017-03-18 40 views
0

我想在兩個日期內從mySQL表中獲取數據。 「日期」列的數據類型是字符串。我的mySQL查詢是如何使用字符串數據類型在mySQL中查詢日期

SELECT * FROM `accounts` WHERE date between STR_TO_DATE('01/03/2017', '%d/%m/%Y') and STR_TO_DATE('20/03/2017', '%d/%m/%Y') 

它什麼也沒有顯示。如果我寫,

SELECT * FROM `accounts` WHERE date between '01/03/2017' and '20/03/2017' 

它需要幾乎所有的數據。這是屏幕截圖。

Screen

+0

你是什麼日期列的數據類型? – GurV

回答

1

如果你的「日期」數據類型爲字符串,然後將查詢將使用字符串比較。如果需要日期比較,則必須將日期列轉換爲日期數據類型STR_TO_DATE(日期,'%d /%m /%Y')。

你可以使用類似這樣

SELECT * FROM `accounts` 
    WHERE STR_TO_DATE(date, '%d/%m/%Y') BETWEEN 
     STR_TO_DATE('01/03/2017', '%d/%m/%Y') AND 
     STR_TO_DATE('20/03/2017', '%d/%m/%Y') 
相關問題