y年不适用。相反,我可以使用年份或年份。然而,米和d的作品。为什么?

y年不适用。相反,我可以使用年份或年份。然而,米和d的作品。为什么?

问题描述:

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'可以持续数月或数分钟吗? 。 –

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 

如果你在你的第一个例子,一个一天的日期的增加,这将增加一个“一年的一天”时预期的注意。