2012-01-20 49 views
25

我想選擇最近6個月的表中的條目,我有一個名爲datetime的列,這是一個日期時間mysql格式。如何從使用MySQL的新聞表中選擇最近6個月

我見過很多使用區間和其他方法的方法 - 我應該使用哪種方法?由於

+3

如果現場真的叫你的datetime '需要用'來包圍它。 datetime是一個保留字。巴勃羅的迴應會在他有'your_dt_field'的地方工作,你可能需要把'datetime'與正確的轉義字符相提並論。 – xQbert

回答

79

使用DATE_SUB

.... where yourdate_column > DATE_SUB(now(), INTERVAL 6 MONTH) 
+0

DATE_SUB()函數減去給定日期的時間間隔。在這種情況下「現在() - 6個月」。 – prageeth

+0

''DATE_SUB()'函數內部,我也可以使用'MAX()'而不是'now()'?因爲我面臨類似的情況,所以我必須檢查日期列中最後一個日期的最後6個月的數據,而不是今天的日期。 – LearneR

11

試試這個:

select * 
    from table 
where your_dt_field >= date_sub(now(), interval 6 month); 

查詢寫着:給我所有條目table其中對應於入境日期字段爲6個月更新。

+0

your_dt_field格式是什麼?也可以使用那裏系統當前日期 –

1

我試圖@ user319198答案顯示最近6個月(中和)的銷售,它的工作,但我在最早月份面臨一個問題,我沒有得到的銷售金額整整一個月。結果從當月的當天開始。

只是我想分享我的解決辦法,如果任何人有興趣: -

yourdate_column > DATE_SUB(now(), INTERVAL 7 MONTH) 
limit 6 

而且這將是巨大的,如果任何人有我的情況下更好的解決方案J.

相關問題