联机丛书对dateadd的说明:
DATEADD
在向指定日期加上一段时间的基础上,返回新的 datetime 值。语法
DATEADD ( datepart , number, date ) 参数
datepart是规定应向日期的哪一部分返回新值的参数。日期部分 缩写
dayofyear dy, y
Day dd, d datepart 部分用dayofyear,和用day好像没区别SELECT DATEADD(dayofyear, 21, getdate())
SELECT DATEADD(day, 21, getdate())
结果一样,
在什么情况下,或在哪个日期函数里有区别?
DATEADD
在向指定日期加上一段时间的基础上,返回新的 datetime 值。语法
DATEADD ( datepart , number, date ) 参数
datepart是规定应向日期的哪一部分返回新值的参数。日期部分 缩写
dayofyear dy, y
Day dd, d datepart 部分用dayofyear,和用day好像没区别SELECT DATEADD(dayofyear, 21, getdate())
SELECT DATEADD(day, 21, getdate())
结果一样,
在什么情况下,或在哪个日期函数里有区别?
SELECT DATEPART(DAYOFYEAR,GETDATE()) --返回286(今天是今年的第286天)
SELECT DATEPART(DAY,GETDATE()) --返回12(今天是这个月的第12天)
/*
------------------------------
285(所影响的行数为 1 行)
*/
SELECT DATEADD(day, 21, getdate())以上两个语句等同于 select getdate()+21 即返回21天以后的当前时间