2016-03-03 95 views
0

如何從當月份發現上個月的記錄。如何查找上個月的記錄?

ex。

12-11-2015 
12-12-2015 
12-1-2016 
12-2-2016 

,我寫我的查詢是這樣的:

select * from tbl where MONTH(date) < MONTH(CURDATE()); 

這說明只有一條記錄2016年12月1日。但我想要除去最後一張唱片12-2-2016之外的所有唱片。

我覺得不同年份的問題。

+0

這是因爲11月份大於當前日期的月份。 – Wanderer

+1

並且你在DB中以'12-11-2015'格式存儲日期? –

回答

1

試試這個:

SELECT * 
FROM tbl 
WHERE (MONTH(date) < MONTH(CURDATE()) AND YEAR(date) = YEAR(CURDATE())) 
     OR 
     YEAR(date) < YEAR(CURDATE()) 

在上面的查詢中使用的謂詞實質上說:如果這兩個日期都在同一年,那麼你就可以比較一個月,否則,你只能比較的年份。

0
select * from tbl where MONTH(date) < MONTH(CURDATE()) OR YEAR(date) < YEAR(CURDATE()); 
+0

這是不正確的,我很害怕。想想這個日期''2017-01-01''。此日期的月份*小於*當前日期的月份*。然而這個日期是*過去*當前日期。 –

+0

是的你是對的,我接近我的答案。 –