我有一個包含兩列「date_from」和「date_to」的表格。當用戶輸入一個日期,我想要得到的行選擇日期之間的那兩個,但在這些日期的年份不重要我 - 只有幾個月形成像季節我已經到了這個:MySQL在兩個日期之間選擇行,無論年份如何
SELECT `date_from` , `date_to`
FROM `language_courses_accommodation_periods`
WHERE DATE_FORMAT( `date_from` , '%c') <= DATE_FORMAT(STR_TO_DATE( '2017-02-03', '%Y-%m-%d') , '%c')
AND DATE_FORMAT( `date_to` , '%c') >= DATE_FORMAT(STR_TO_DATE( '2017-02-03', '%Y-%m-%d') , '%c')
AND DATE_FORMAT( `date_from` , '%e') <= DATE_FORMAT(STR_TO_DATE( '2017-02-03', '%Y-%m-%d') , '%e')
AND DATE_FORMAT( `date_to` , '%e') >= DATE_FORMAT(STR_TO_DATE( '2017-02-03', '%Y-%m-%d') , '%e')
這在某些情況下有效,但一個賽季可以在11月開始, 在3月結束,然後我的查詢doesent返回正確的結果。
可能重複的[MySQL選擇兩個日期之間的所有條目,無論年份](http://stackoverflow.com/questions/8198258/mysql-select-all-entries-between-two-dates-regardless-of-year ) –
我想知道爲什麼你有4個條件而不是兩個。基於'%c'的支票將產生與'%e'支票相同的結果,或者我錯過了什麼?我的意思是2017-02-01 <= 2017-02-01會產生真實情況,就像2017-02-28 <= 2017-02-028,不是? – trincot