2012-04-23 35 views
1

我不確定我的大腦是否工作,因爲它是星期一。我想在今年添加一年,但我收到了不想要的結果。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 

東西這麼簡單,由於某種原因,我沒能趕上問題。

回答

1
select DATEADD(YEAR, 1, current_timestamp) 

,如果你只想要日期部分:

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

哈!我知道這是愚蠢的。我想讓我的DATEPART在外面而不是內部。即。選擇DATEPART(YYYY,DATEADD(YEAR,1,current_timestamp)) – 2012-04-23 15:08:43

+0

不知道我理解你的評論... – 2012-04-23 15:09:26

+0

在我上面的示例中,我試圖只返回年份:select DATEADD(YEAR,1,DATEPART(YEAR,current_timestamp )),但我需要執行datepart像這樣:select DATEPART(YYYY,DATEADD(YEAR,1,current_timestamp)) – 2012-04-23 15:46:41

0
select DATEADD(YEAR, 1, current_timestamp) 
1

你可以試試這個?

選擇DATEPART(YYYY,(DATEADD(今年1,CURRENT_TIMESTAMP)))

--IT會給結果2016

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

去 回報 1905年7月10日00:00 :00.000 這就是問題所在

select dateadd(year,1, current_timestamp); 

去 回報 2017年7月25日23:1 3:49.700