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 | 缩写 |
---|---|
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 |
以下实例:返回当前系统时间中年,月,日,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