2016-12-05 20 views
0
SELECT DATEADD(y, 1, '20160212'); -- using y does not work. 

返回的結果是'20160213'。爲了獲得理想的結果,我必須使用yy或year。y年不適用。相反,我可以使用年份或年份。然而,米和d的作品。爲什麼?

但是兩者:

SELECT DATEADD(m, 1, '20160212'); 
SELECT DATEADD(d, 1, '20160212'); --works. 

爲什麼?

+1

您應該使用**全名**的原因之一 - 而不是縮寫!如果你有'DATEADD(MONTH,.....)'而不是'DATEADD(m,....' - 這樣'm'可以持續數月或數分鐘嗎? 。 –

回答

2

docs

datepart  Abbreviations 
year   yy, yyyy 
quarter   qq, q 
month   mm, m 
dayofyear  dy, y  <--- y is already used for day of year 
day    dd, d 
week   wk, ww 
weekday   dw, w 
hour   hh 
minute   mi, n 
second   ss, s 
millisecond  ms 
microsecond  mcs 
nanosecond  ns 

如果你在你的第一個例子,一個一天的日期的增加,這將增加一個「一年的一天」時預期的注意。