2013-05-12 116 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