2012-11-15 23 views
1

我一直在使用這個查詢來提取上個月SQL - 拿到上個月的數據

SELECT * 
FROM Member 
WHERE DATEPART(m, date_created) = DATEPART(m, DATEADD(m, -1, getdate())) 

信息與去年年底的臨近,將這種自動拉2012年12月,當我2013年1月運行呢?

+0

什麼是DatePart,是m =月? – Derek

+3

您正在使用哪些DBMS? –

+2

用'DatePart'判斷,我會假設SQL Server。 – Bridge

回答

1

是的。你的getdate()函數會在查詢運行時給出當前的日期。並且您將月份加入-1並將date_created列的月份與上個月進行比較。但我認爲你也應該做一年的比較。你應該添加兩個條件的月份和年份。

+0

非常感謝你 – grahamie

1

是的,它會拉動12月份的數據。 但是它會從任何一年拉動12月份的數據,而不僅僅是2012年

+0

非常感謝你 – grahamie

0

是的,它會的。 DATEADD是一個SQL內部函數,它增加了完整的日期,而不僅僅是選定的部分(日,月,年)。

+0

非常感謝你 – grahamie