2014-01-05 109 views
4

我需要按日期排序我的SQL查詢的結果與WHERE。 我想知道如何才能得到實際日期和6個月之前的結果。日期SQL之間

喜歡的東西

BETWEEN actual_date 
AND actual_date - (operator) 6 month 

感謝

+0

嗨,你如果其中一個人應該批准答案正確。 –

回答

3

試試這個

SELECT * FROM table 
WHERE actual_date BETWEEN DATE_ADD(Now(),INTERVAL -6 MONTH) AND Now() 

有inital錯誤,因爲第6幾個月前,較低的日期應該是第一個。

+1

從可讀性的角度來看,使用['DATE_SUB'](http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-子)與一個積極的區間 – Bojangles

+0

哇,有點尷尬,因爲我從來沒有使用'DATE_SUB',我總是添加一個 - 減法。猜猜習慣很難踢。但是,是的,爲了可讀性,「DATE_SUB」更有意義。 Upvoted尼爾斯的答案。 –

2

你可以這樣做:

WHERE mydate BETWEEN DATE_SUB(NOW(), INTERVAL 6 MONTH) AND NOW() 
  1. Date_sub information
+0

需要將現在和過去6個月之間的日期切換爲不返回任何內容。 –

0

我不是在MySQL終端的前面,但這個應該工作

select 
    * 
from 
    yourtable t 
where 
    /* Greater or equal NOW */ 
    r.date >= NOW() 
    /* Smaller or equal than 6 months ago */ 
    r.date <= DATE_SUB(NOW(), INTERVAL 6 MONTH) 
0
SELECT * FROM table 
WHERE actual_date BETWEEN DATE_ADD(actual_date,INTERVAL -6 MONTH) AND actual_date 

or 

SELECT * FROM table 
WHERE actual_date BETWEEN DATE_SUB(actual_date, INTERVAL 6 MONTH) AND actual_date