2013-05-12 110 views
8
這樣

,我有代碼:SQL其中,從今天起加號和減號天日期

select CUS_Id, CUS_Name, CUS_JoinDate 

    from CUSTOMER 

    where CUS_joinDate between '04-12-2013' and '06-12-2013' 

我怎樣才能讓它「其中」 CUS_JoinDate將宣佈從今天的日期(減去1個月和今天+ 1月)?

因此,每次運行報告時,都將取決於當前日期,並且會自動減去並加上30天。

感謝,

回答

15

嘗試,

WHERE CUS_joinDate BETWEEN DATEADD(mm,-1,GETDATE()) AND DATEADD(mm,1,GETDATE()) 
+0

這個作品..^_^..謝謝.. – Captain16 2013-05-12 05:31:37

+0

歡迎您':)' – 2013-05-12 06:53:32

+0

「給我記錄未來!「 – 2016-09-15 16:50:28

3

您可以使用CURDATE()和DATEADD()

W3SCHOOLS SQL DATES

+0

Curdate是mysql – 2013-05-12 05:50:44

0

試試這個:

select CUS_Id, CUS_Name, CUS_JoinDate 

    from CUSTOMER 

    where CUS_joinDate BETWEEN DATEADD(DAY,-1,GETDATE()) AND DATEADD(DAY,1,GETDATE()) 

但是,如果您需要添加月/年至今,你需要使用DATEADD()函數。

它可以作爲:

SELECT  GETDATE(), 'Today' 
UNION ALL 
SELECT  DATEADD(DAY, 10, GETDATE()), '10 Days Later' 
UNION ALL 
SELECT  DATEADD(DAY, –10, GETDATE()), '10 Days Earlier' 
UNION ALL 
SELECT  DATEADD(MONTH, 1, GETDATE()), 'Next Month' 
UNION ALL 
SELECT  DATEADD(MONTH, –1, GETDATE()), 'Previous Month' 
UNION ALL 
SELECT  DATEADD(YEAR, 1, GETDATE()), 'Next Year' 
UNION ALL 
SELECT  DATEADD(YEAR, –1, GETDATE()), 'Previous Year' 

結果集:

2011-05-20 21:11:42.390 Today 
2011-05-30 21:11:42.390 10 Days Later 
2011-05-10 21:11:42.390 10 Days Earlier 
2011-06-20 21:11:42.390 Next Month 
2011-04-20 21:11:42.390 Previous Month 
2012-05-20 21:11:42.390 Next Year 
2010-05-20 21:11:42.390 Previous Year