我想在当前日期添加天数并且工作正常但是当我在当前日期添加360天时它给了我错误的价值。
例如:当前日期是2014年4月11日我正在为它添加360天,它应该给我11/04/2015但它显示的是同一天11/04/2014。这一年没有变化。
这是我的代码
select dateadd(dd,360,getdate())
做就是了-
Select (Getdate()+360) As MyDate
无需使用dateadd函数来添加或减去给定日期的天数。要添加年,月,小时,您需要dateadd功能。
select dateadd(dd,360,getdate())
将为您提供正确的日期,如下所示:
2017-09-30 15:40:37.260
我刚刚运行查询并检查:
Dateadd(datepart,number,date)
你应该像这样使用它: -
select DATEADD(day,360,getdate())
然后你会找到相同的日期,但不同的年份。
从SQL Server 2017 official documentation:
SELECT DATEADD(day, 360, GETDATE());
如果你想删除GETDATE
函数的时间部分,你可以这样做:
SELECT DATEADD(day, 360, CAST(GETDATE() AS DATE));
可以试试这个
select (CONVERT(VARCHAR(10),GETDATE()+360,110)) as Date_Result
两种或三种方式(取决于你想要的),说我们在当前日期是(在tsql代码中) -
DECLARE @myCurrentDate datetime = '11Apr2014 10:02:25 AM'
(顺便说一句 - 你的意思是11月11日或04Nov2014在您的原始帖子中?很难说,因为日期时间是文化偏见。在以色列11/04/2015意味着11月到2014年。我知道在美国11/04/2014它意味着04Nov2014.tommatoes tomatos我猜)
SELECT @myCurrentDate + 360
- 默认日期时间计算后跟+(某个整数),只需在几天内添加。所以你会得到2015-04-06 10:02:25.000
- 不完全是你想要的,而只是明年关闭日期的球场公园。SELECT DateADD(DAY, 365, @myCurrentDate)
或DateADD(dd, 365, @myCurrentDate)
会给你'2015-04-11 10:02:25.000'。这两种是合成糖(非常相似)。我想你应该这就是你想要的。但它仍然是错误的,因为如果日期是“四分之三”年(比如DECLARE @myCurrentDate datetime = '11Apr2011 10:02:25 AM'
),你会得到'2012-04-10 10:02:25.000'。因为2012年有366天,还记得吗? (2012年2月29日消耗“额外”日。几乎每四年都有29Feb)。SELECT DateADD(year, 1, @myCurrentDate)
这给了2015-04-11 10:02:25.000
。SELECT DateADD(year, 1, DateADD(day, DateDiff(day, 0, @myCurrentDate), 0))
它给你2015-04-11 00:00:00.000
(因为datetime也有时间,对吗?)。含蓄啊?SELECT DateAdd(5,day(getdate())
这是为了在当天增加5天。例如:今天的日期是23/08/2018,它通过使用上述查询成为28/08/2018
**Add Days in Date in SQL**
DECLARE @NEWDOB DATE=null
SET @NEWDOB= (SELECT DOB, DATEADD(dd,45,DOB)AS NEWDOB FROM tbl_Employees)