2011-10-12 101 views
0

我想搜索所選月份是否在月份之間;是月份1和月份2之間的月份

例如:

  • 一月至2011年一月至2011年三月至2011年間
  • APR-2011是不是FEB-2011和日至2011年

之間我該怎麼辦只有在mysql中選擇month-year是在month1和month2之間時才選擇?

month1和month2都使用datetime數據類型。

+0

你如何在數據庫中存儲這些月份/年份? – sdleihssirhc

+0

第1列(第1月)和第2列(第2月)採用日期時間格式。 –

回答

0

您可以爲每個構造一個Date,然後在查詢中使用「BETWEEN」子句。

即 select * from table where datecolumn between「01/01/2001」and「03/01/2001」。

+0

在MySQL中使用日期時,請記住使用格式「2011-01-01」而不是「01/01/2011」... –

+0

是的 - 只有美國人使用月份 - 日 - 年。這是一種完全遲緩的格式;要麼使用小中大,要麼大中小,而不是中小大。學習使用標準(ISO)日期格式yyyy-MM-dd進行編碼。 – Bohemian

+0

它是yyyy-mm-dd ... – dispake

0
SELECt * FROM table WHERE (MONTH(a_date) > 1 AND MONTH(a_date) < 4) 
         AND YEAR(a_date) = 2011 -- BETWEAN 01 AND 04 2011 

$e = 'jan-2011'; 
$e = explode('-',$e); 

$month = $e[0]; 
$year = $e[1]; 

SELECt * FROM table WHERE a_date 
BETWEEN STR_TO_DATE('jan/01/2010','%M/%d/%Y') 
AND STR_TO_DATE('march/01/2010','%M/%d/%Y') 

SELECt * FROM table WHERE a_date 
BETWEEN STR_TO_DATE('01/01/2010','%m/%d/%Y') 
AND STR_TO_DATE('03/01/2010','%m/%d/%Y') 
+0

這個答案似乎沒問題,但是下面的查詢字符串是什麼? –

+0

表AS AS t1聯合(另一個查詢FROM與t.1) – user956584