联机丛书对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())
结果一样,
在什么情况下,或在哪个日期函数里有区别?

解决方案 »

  1.   


    SELECT DATEPART(DAYOFYEAR,GETDATE())   --返回286(今天是今年的第286天)
    SELECT DATEPART(DAY,GETDATE())   --返回12(今天是这个月的第12天)
      

  2.   

    SELECT DATENAME(dayofyear, '2008-10-11') --计算一个日期,是本年度的第多少天
    /*
    ------------------------------ 
    285(所影响的行数为 1 行)
    */
      

  3.   

    SELECT DATEADD(dayofyear, 21, getdate()) 
    SELECT DATEADD(day, 21, getdate())以上两个语句等同于 select getdate()+21  即返回21天以后的当前时间
      

  4.   

    对于你这个例子效果一样,不代表它们没有区别参cn_sql的datapart()