如何在sql server中添加天数到当前日期?

Faz*_*Mir 20 sql-server dateadd

我想在当前日期添加天数并且工作正常但是当我在当前日期添加360天时它给了我错误的价值.

例如:当前日期是2014年4月11日我正在为它添加360天,它应该给我11/04/2015但它显示的是同一天11/04/2014.这一年没有变化.

这是我的代码

select dateadd(dd,360,getdate())
Run Code Online (Sandbox Code Playgroud)

小智 40

做就是了-

Select (Getdate()+360) As MyDate
Run Code Online (Sandbox Code Playgroud)

无需使用dateadd函数来添加或减去给定日期的天数.要添加年,月,小时,您需要dateadd功能.

  • 代码不好,因为它不明确.dateadd(dd,360,getdate())使它更明显(并且你依赖于日期时间的内部实现),尽管这可能是我认为不是的SQL标准的一部分. (7认同)
  • 我从来不知道. (2认同)
  • 应该使用DateAdd代替日期上的+/-运算符。http://stackoverflow.com/a/29696475/354756 (2认同)

小智 24

select dateadd(dd,360,getdate()) 会给你正确的日期,如下所示:

2017-09-30 15:40:37.260

我刚刚运行查询并检查:
请查看附件图片


小智 11

Dateadd(datepart,number,date)
Run Code Online (Sandbox Code Playgroud)

你应该像这样使用它: -

select DATEADD(day,360,getdate())
Run Code Online (Sandbox Code Playgroud)

然后你会找到相同的日期,但不同的年份.


Dhe*_*rik 6

从SQL Server 2017 官方文档中

SELECT DATEADD(day, 360, GETDATE());
Run Code Online (Sandbox Code Playgroud)

如果你想删除部分时间的的GETDATE功能,你可以这样做:

SELECT DATEADD(day, 360, CAST(GETDATE() AS DATE));
Run Code Online (Sandbox Code Playgroud)