天天看點

SQlServer的日期相減(間隔)dateadd ,datediff 函數

作者:白雨青

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

2、目前時間的一月前,目前時間,一月後

select '一月前' type,dateadd(month, -1, GETDATE()) time
union all
select '目前時間' type,GETDATE() time
union all
select '一月後' type,dateadd(month, 1, GETDATE()) time           
SQlServer的日期相減(間隔)dateadd ,datediff 函數

3、目前時間的一天前,目前時間,一天後

select '一天前' type,dateadd(day, -1, GETDATE()) time
union all
select '目前時間' type,GETDATE() time
union all
select '一天後' type,dateadd(day, 1, GETDATE()) time           
SQlServer的日期相減(間隔)dateadd ,datediff 函數

4、目前時間的一周前,目前時間,一周後

select '一周前' type,dateadd(week, -1, GETDATE()) time
union all
select '目前時間' type,GETDATE() time
union all
select '一周後' type,dateadd(week, 1, GETDATE()) time           
SQlServer的日期相減(間隔)dateadd ,datediff 函數

5、目前時間的一小時前,目前時間,一小時後

select '一小時前' type,dateadd(hour, -1, GETDATE()) time
union all
select '目前時間' type,GETDATE() time
union all
select '一小時後' type,dateadd(hour, 1, GETDATE()) time           
SQlServer的日期相減(間隔)dateadd ,datediff 函數

6、目前時間的一分鐘前,目前時間,一分鐘後

select '一分鐘前' type,dateadd(minute, -1, GETDATE()) time
union all
select '目前時間' type,GETDATE() time
union all
select '一分鐘後' type,dateadd(minute, 1, GETDATE()) time           
SQlServer的日期相減(間隔)dateadd ,datediff 函數

7、目前時間的一秒前,目前時間,一秒後

select '一秒前' type,dateadd(second, -1, GETDATE()) time
union all
select '目前時間' type,GETDATE() time
union all
select '一秒後' type,dateadd(second, 1, GETDATE()) time           
SQlServer的日期相減(間隔)dateadd ,datediff 函數

二、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           
SQlServer的日期相減(間隔)dateadd ,datediff 函數

繼續閱讀