SQL SERVER中的系统函数(1)--日期函数


        SQL SERVER中系统函数是非常有用的对象,可以帮助我们实现许多算法功能.以下是总结的关于系统时间方面的内建函数:
1.DATEADD:
   用法:DATEADD(timeinterval,number,date)  在date的基础上加上number*timeinterval时间差 
          timeinterval-间隔时间单位,如day或DD(日),MM(月),hh(小时),ww(周),yy(年),s(秒)
          number-----间隔的次数(可正可负.即可取将来时间亦可取过去时间)
          date--------基准时间
   eg:dateadd(hh,10,getdate()) 取系统时间之后10小时的时间
         dateadd (day,-3,getdate())取系统时间之前3天的时间
2.DATEDIFF:
   用法:DATEDIFF(timeinterval,date1,date2)   计算从date1到date2的时间差,返回值以timeinterval为单位,date1在date2之后,返回负值
   eg:DATEDIFF(DAY,'2009-9-1',GETDATE())   返回2009-9-1到系统时间的天数(day)
         datediff(hh,getdate(),'2009-9-1')          返回系统时间到2009-9-1之间的小时数(hh)    
 
3.DATENAME:返回时间日期字符串中部分信息(如年份,月份,)
   用法:datename(datepart,date)
datepart :是返回的 date 的一部分。下表列出了所有有效的 datepart 参数。用户定义的变量等效项是无效的。
datepart 缩写

year

yy, yyyy

quarter

qq, q

month

mm, m

dayofyear

dy, y

day

dd, d

week

wk, ww

weekday

dw

hour

hh

minute

mi, n

second

ss, s

millisecond

ms

microsecond

mcs

nanosecond

ns

TZoffset

tz

date;可以使表达式,列表达式、用户定义的变量或字符串文字。(MSDN原话

以下实例:返回当前系统时间中年,月,日,dayofyear,星期等信息
SELECT DATENAME(year, getdate())
    ,DATENAME(month, getdate())
    ,DATENAME(day, getdate())
    ,DATENAME(dayofyear, getdate())
    ,DATENAME(weekday, getdate());
result为:2009  09  2   245   星期三

4.DATEPART
   用法:datepart(datepart,date)作用同datename类似
从下例中可看出两者差别:   datename返回的是字符串类型,datepart返回的是int类型
SELECT datepart(year, getdate())
    ,datepart(month, getdate())
    ,datepart(day, getdate())
    ,datepart(dayofyear, getdate())
    ,datepart(weekday, getdate());
result:2009  9  2  245  4


 

posted @ 2009-09-02 10:37  起立马扎骡  阅读(547)  评论(2编辑  收藏  举报