2011-06-25 68 views
1

我有一個MYSQL表中的字段名稱「日期」在甲酸「dd/mm」;MYSQL日期範圍使用日期格式的查詢

我需要查詢從20/06到22/06(3天的數據)的結果,這是我如何去做。

mysql> SELECT * FROM `wtt` WHERE date BETWEEN '20/06' AND '22/06'; 

但是MYSQL也選擇了日期22/04,22/05和其他條目。

是否有MYSQL查詢哪些將獲取我正確的答案,而不需要更改我已經存儲在MYSQL表中的信息的格式?

謝謝大家提前!

回答

3

您應該將日期轉換爲MySQL日期類型然後進行比較。

您可以轉換的日期是這樣的:

SELECT STR_TO_DATE(CONCAT('20/06', '/', EXTRACT(YEAR FROM CURDATE())),'%d/%m/%Y'); 

或者乾脆

SELECT STR_TO_DATE('20/06','%d/%m'); 

爲一年0000,如果它沒有關係。

以字符串形式存儲日期會給您帶來這個問題。您應始終使用DATE類型來存儲日期。

+0

我現在明白了,上面的查詢結果「0000-06-20」。 查詢將如何選擇一個日期範圍的結果? 我嘗試了很多組合,他們都沒有工作:( 我是新手,感謝您的耐心等待。 – Chinnappa

+0

我明白了, SELECT * FROM'wtt' WHERE STR_TO_DATE(date,'%d /%m') '0000-06-20'和'0000-06-22'之間; 謝謝你一噸! – Chinnappa

+0

幹得好:)。樂意效勞。 – Jan