以下完全抄袭:http://www.cnblogs.com/atree/archive/2011/03/10/SQL_Server_2005_dateadd_datediff.html
DATEADD:返回给指定日期加上一个时间间隔后的新的日期值
数字:用于与指定的日期部分相加的值。如果指定了非整数值,则将舍弃该值的小数部分,舍弃时不遵循四舍五入
日期:指定的原日期
在此函数中 dw,dy,dd效果一样都表示天
--dateadd(日期部分,数字,日期)
select dateadd(year,45,'1990-12-11')
--2035-12-11 00:00:00.000
select dateadd(month,45,'1990-12-11')
--1994-09-11 00:00:00.000
select dateadd(mm,45,'1990-12-11')
--1994-09-11 00:00:00.000
select dateadd(qq,12,'1990-12-11')
--1993-12-11 00:00:00.000
select dateadd(hh,12,'1990-12-11')
--1990-12-11 12:00:00.000
select dateadd(yy,-12,'1990-12-11')
--1978-12-11 00:00:00.000
DATEDIFF:返回两个指定日期的指定日期部分的差的整数值
在计算时由结束日期减去开始日期
在此函数中 dw,dy,dd效果一样都表示天
--datediff(日期部分,开始日期,结束日期)
select datediff(yy,'1990-12-11','2008-9-10')
--18(2008-1990)
select datediff(mm,'2007-12-11','2008-9-10')
--9((2008-9)-(2007-12))
DATENAME:返回表示指定日期的指定日期部分的字符串
dw表示一星期中星期几,wk表示一年中的第几个星期,dy表示一年中的第几天
--datename(日期部分,日期)
select datename(mm,'2007-12-11')
--12
select datename(dw,'2007-12-11')
--星期二
select datename(dd, '2007-12-11')
--11
DATEPART:返回表示指定日期的指定日期部分的整数
wk表示一年中的第几个星期
dy表示一年中的第几天
dw表示一星期中星期几,返回整数默认1为星期天
--datepart(日期部分,日期)
select datepart(mm,'2007-12-11')
--12
select datepart(dw,'2007-12-11')
--3(星期二)
select datepart(dd, '2007-12-11')
--11
DAY:返回一个整数,表示指定日期的天的部分
等价于datepart(dd, 日期)
--day(日期)
select day('2007-12-11')
--11
GETDATE:返回当前系统日期和时间
--getdate()
select getdate()
--2014-02-25 16:30:16.870
GETUTCDATE:返回表示当前的 UTC(世界标准时间)时间。即格林尼治时间(GMT)
--getutcdate()
select getutcdate()
--2014-02-25 08:31:11.483
MONTH:返回一个整数,表示指定日期的月的部分
等价于datepart(mm, 日期)
--month(日期)
select month('2014-02-25 08:31:11.483')
--2
YEAR:返回一个整数,表示指定日期的年的部分
等价于datepart(yy, 日期)
--year(日期)
select year('2014-02-25 08:31:11.483')
--2014
Microsoft SQL Server 2005 可识别的日期部分及其缩写:
日期部分 | 含义 | 缩写 |
year | 年 | yy, yyyy |
quarter | 季 | qq, q |
month | 月 | mm, m |
dayofyear | 天(请看函数中的说明) | dy, y |
day | 天(请看函数中的说明) | dd, d |
week | 星期 | wk, ww |
weekday | 天(请看函数中的说明) | dw, w |
hour | 小时 | hh |
minute | 分钟 | mi, n |
second | 秒 | ss, s |
millisecond | 毫秒 | ms |