白雨青工作站發文位址:SQlServer的日期相減(間隔)dateadd ,datediff 函數-白雨青工作站
一、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