2013-08-27 136 views
3

我想知道日期(年 - 月 - 日)是否在一個月中的某一天(月 - 日)之間。查詢以檢查日期是否在兩個月的日期值之間

例如,我想知道'2013年4月2日'是在'4月2日'和'4月19日'之間。

我可以很容易地做到這一點的範圍有一年的價值。無論如何,沒有一年,我需要想法如何做到這一點。

的我想要實現的一些例子:

SELECT 1 WHERE '2013-04-02' BETWEEN '04-01' AND '04-19'; -- result is 1 
SELECT 1 WHERE '2014-04-02' BETWEEN '04-01' AND '04-19'; -- result is 1 
SELECT 1 WHERE '2014-03-02' BETWEEN '04-01' AND '04-19'; -- result is 1 

感謝

+0

MySQL有月份和日期運營商獲得所需的字段:HTTP: //dev.mysql.com/doc/refman/5.5/en/date -and-time-functions.html – dcaswell

回答

3

您可以使用DATE_FORMAT()

SELECT 
* 
FROM 
table 
WHERE 
    DATE_FORMAT(date,'%m-%d') BETWEEN '04-01' AND '04-19' 

編輯

SELECT 
    * 
FROM 
    table 
WHERE 
    STR_TO_DATE(date, '%m-%d') BETWEEN '04-01' AND '04-19' 
+0

謝謝。我試過這個,這個工程。只是一個問題,但這是比較值作爲日期?或者比較在這裏如何工作?作爲字符串? – llt

+0

如果它的字符串,那麼你可以使用'STR_TO_DATE' .... –

+0

@llt看到我編輯的答案。 –

0

以下是與Oracle工作

select * from table_name where to_char(date_column, 'MM-DD') BETWEEN '08-01' AND '08-14' 
+0

謝謝您的回答。我正在尋找的是MySQL。雖然看起來邏輯是一樣的。 – llt

相關問題