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.
为什么?
答
从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
如果你在你的第一个例子,一个一天的日期的增加,这将增加一个“一年的一天”时预期的注意。
您应该使用**全名**的原因之一 - 而不是缩写!如果你有'DATEADD(MONTH,.....)'而不是'DATEADD(m,....' - 这样'm'可以持续数月或数分钟吗? 。 –