[摘]
DATEPART
返回代表指定日期的指定日期部分的整数。
语法
DATEPART ( datepart , date ) 
参数
datepart是规定应向日期的哪一部分返回新值的参数。下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。日期部分 缩写 
Year     yy, yyyy 
quarter  qq, q 
Month     mm, m 
dayofyear dy, y 
Day       dd, d 
Week      wk, ww 
Hour       hh 
minute     mi, n 
second      ss, s 
millisecond  ms 
week (wk, ww) 日期部分反映对 SET DATEFIRST 作的更改。任何一年的 1 月 1 日定义了 week 日期部分的开始数字,例如:DATEPART(wk, 'Jan 1, xxxx') = 1,此处 xxxx 代表任一年。DATEADD
在向指定日期加上一段时间的基础上,返回新的 datetime 值。
语法
DATEADD ( datepart , number, date ) 
参数
number
是用来增加 datepart 的值。如果指定一个不是整数的值,则将废弃此值的小数部分。例如,如果为 datepart 指定 day,为 number 指定 1.75,则 date 将增加 1。

解决方案 »

  1.   

    1、  select datepart(week,dateadd(dd,-1,getdate()))
        dateadd(dd,-1,getdate())表示当天的日期减去一天的日期
        datepart(week,dateadd(dd,-1,getdate()))该日期是一年的第几周2、 就是得到fdifeetype = 80000 并且 fddtime的时间是一年的第8周,并且fdcstatustext的内容不是以#DELIVRD',并且按 fdcdestaddr分组,每个 fdcdestaddr的次数 ,并且结果要按次数的多少排序。 
    select fdcdestaddr , count(*) FROM 表示从tbsmnotice_hist 这个表里面取数据where fdifeetype = 80000 and datepart(week,dateadd(dd,-1,fddtime))  = 8  and  fdcstatustext not like '%#DELIVRD'  表示取数据的条件,条件是fdifeetype = 80000 并且 fddtime的时间是一年的第8周,并且fdcstatustext的内容不是以#DELIVRD'开头group by fdcdestaddr order by count(*)  按 fdcdestaddr分组 要按次数的多少升序排序