DATEADD,DATEPART没有返回所需的结果

时间:2012-04-23 15:04:23

标签: sql-server-2008 dateadd datepart

我不确定我的大脑是否正常工作,因为它是星期一。我想在当年添加一年,但我得到了不理想的结果。

这是我得到的:

select current_timestamp 
Output:2012-04-23 09:57:45.777

select DATEADD(YEAR, 1, DATEPART(YEAR,current_timestamp)) 
Output: 1906-07-06 00:00:00.000

select DATEPART(year,current_timestamp) 
Output: 2012

像这样简单的东西,由于某种原因,我没有抓住这个问题。

4 个答案:

答案 0 :(得分:1)

select DATEADD(YEAR, 1, current_timestamp)

如果您只想要日期部分:

select DATEADD(d, 0, DATEDIFF(d, 0, DATEADD(YEAR, 1, current_timestamp) ))

答案 1 :(得分:1)

你能试试吗?

选择DATEPART(YYYY,(DATEADD(YEAR,1,current_timestamp)))

- 它将给出结果2016

答案 2 :(得分:0)

select DATEADD(YEAR, 1, current_timestamp)

答案 3 :(得分:-1)

SELECT cast(DATEPART(YEAR,current_timestamp) as datetime);

去 返回 1905-07-10 00:00:00.000 这就是问题所在

select dateadd(year,1, current_timestamp);

去 返回 2017-07-25 23:13:49.700