SQL where 日期从今天减去和加上天数

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/16504214/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-01 15:10:12  来源:igfitidea点击:

SQL where Date from today minus and plus days

sqlsql-server-2008tsqlsql-server-2005

提问by Captain16

I have codes like this:

我有这样的代码:

  select CUS_Id, CUS_Name, CUS_JoinDate

  from CUSTOMER

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

How can I make it 'where' CUS_JoinDate will be declare as from Today Date(minus 1 month and today + 1 month)?

我怎样才能让它从今天的日期(减去 1 个月和今天 + 1 个月)声明为“在哪里”CUS_JoinDate?

So every time I run the report it will depends on the current date and it will automatically minus and plus 30 days.

因此,每次我运行报告时,它将取决于当前日期,并且会自动减去和加上 30 天。

回答by John Woo

try,

尝试,

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

回答by Ben C Wang

You can use CURDATE() and DATEADD()

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

W3SCHOOLS SQL DATES

W3SCHOOLS SQL 日期

回答by Muhammad Awais

Try this one:

试试这个:

 select CUS_Id, CUS_Name, CUS_JoinDate

  from CUSTOMER

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


However, if you need to add months/years to date, you need to use DATEADD() function.

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

It can be used as:

它可以用作:

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'

Result Set:

结果集:

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