一、介绍
- getdate获取当前系统时间
select getdate() as 当前时间 --会返回当前的时间,例如:2013-12-05 14:49:16.000
- dateadd在一个时间上加一段时间返回一个新的时间
格式:dateadd(单位,数量,日期时间)
select dateadd(day,1,getdate()) --在当前时间上加上一天并返回,例如:2013-12-06 14:50:54.053
- datediff就是用来计算两个时间的时间差的
格式:datediff(单位,开始日期时间,结束日期时间)
select datediff(day,'2013-12-3','2013-12-5') --计算两个时间差几天,此处会输出2
- datepart获取指定日期中的指定部分
格式:datepart(单位,日期时间)
select datepart(year,getdate()) --获取当前时间的年数,,例如,如果当前日期是2013-12-5,此处会输出2013
- datename获取指定日期的指定的指定日期字符串
格式:datename(单位,日期时间)
select datename(weekday,getdate()) --获取当前日期是星期几,例如,如果当前日期是2013-12-5,那么就会输出星期四
select datename(week,getdate()) --获取本年第多少周,例如,如果当前的日期是2013-12-5,那么不会输出49
- day、month、year可以与datepart对比一下
select year('2013-12-5'),datepart(year,'2013-12-5') --获取指定日期中的年
select month('2013-12-5'),datepart(month,'2013-12-5') --获取指定日期中的月
select day('2013-12-5'),datepart(day,'2013-12-5') --获取提定日期中的日
二、练习
--声明两个时间
declare @t1 datetime
declare @t2 datetime
set @t1='2013-12-4 12:28:00'
set @t2='2013-12-5 13:28:00'
--计算两个时间相差的天数
select @t1 as 开始时间,@t2 as 结束时间,datediff(day,@t1,@t2) as 相差天数
--计算两个时间相差的小时
select @t1 as 开始时间,@t2 as 结束时间,datediff(hour,@t1,@t2) as 相差小时
--计算两个时间相差的分钟
select @t1 as 开始时间,@t2 as 结束时间,datediff(minute,@t1,@t2) as 相差分钟
--计算两个时间相差的秒数
select @t1 as 开始时间,@t2 as 结束时间,datediff(second,@t1,@t2) as 相差秒数