白雨青工作站发文地址:http://www.byqws.com/blog/1044.html
一、dateadd 函数的使用
dateadd() 函数在日期中添加或减去指定的时间间隔。
dateadd(datepart,number,date)
date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。
举例如下:
1、当前时间的一年前,当前时间,一年后
select '一年前' type,dateadd(year, -1, GETDATE()) time
union all
select '当前时间' type,GETDATE() time
union all
select '一年后' type,dateadd(year, 1, GETDATE()) time
2、当前时间的一月前,当前时间,一月后
select '一月前' type,dateadd(month, -1, GETDATE()) time
union all
select '当前时间' type,GETDATE() time
union all
select '一月后' type,dateadd(month, 1, GETDATE()) time
3、当前时间的一天前,当前时间,一天后
select '一天前' type,dateadd(day, -1, GETDATE()) time
union all
select '当前时间' type,GETDATE() time
union all
select '一天后' type,dateadd(day, 1, GETDATE()) time
4、当前时间的一周前,当前时间,一周后
select '一周前' type,dateadd(week, -1, GETDATE()) time
union all
select '当前时间' type,GETDATE() time
union all
select '一周后' type,dateadd(week, 1, GETDATE()) time
5、当前时间的一小时前,当前时间,一小时后
select '一小时前' type,dateadd(hour, -1, GETDATE()) time
union all
select '当前时间' type,GETDATE() time
union all
select '一小时后' type,dateadd(hour, 1, GETDATE()) time
6、当前时间的一分钟前,当前时间,一分钟后
select '一分钟前' type,dateadd(minute, -1, GETDATE()) time
union all
select '当前时间' type,GETDATE() time
union all
select '一分钟后' type,dateadd(minute, 1, GETDATE()) time
7、当前时间的一秒前,当前时间,一秒后
select '一秒前' type,dateadd(second, -1, GETDATE()) time
union all
select '当前时间' type,GETDATE() time
union all
select '一秒后' type,dateadd(second, 1, GETDATE()) time
二、datediff 函数的使用
datediff() 函数返回两个日期之间的间隔,默认是间隔天数
datediff(datepart, date1,date2)
date1:开始时间;date2:结束时间
举例如下:
select dateadd(year, -1, GETDATE()) 开始日期,GETDATE() 结束日期,'前后2个时间相差' + convert(varchar(1),datediff(year, dateadd(year, -1, GETDATE()),GETDATE()))+ '年' type
union all
select dateadd(year, -1, GETDATE()) 开始日期,GETDATE() 结束日期,'前后2个时间相差' + convert(varchar(10),datediff(month, dateadd(year, -1, GETDATE()),GETDATE()))+ '月' type
union all
select dateadd(year, -1, GETDATE()) 开始日期,GETDATE() 结束日期,'前后2个时间相差' + convert(varchar(10),datediff(day, dateadd(year, -1, GETDATE()),GETDATE()))+ '天' type