sqlserver計算時間差DATEDIFF 函數

功能
    返回兩個日期之間的間隔。express

語法
    DATEDIFF ( date-part, date-expression-1, date-expression-2 )函數

date-part :
    year | quarter | month | week | day | hour | minute | second | millisecondspa

參數
    date-part 指定要測量其間隔的日期部分。.net

  有關日期部分的詳細信息,請參見日期部分。blog

  date-expression-1 某一間隔的起始日期。從 date-expression-2 中減去該值,返回兩個參數之間 date-parts 的天數。get

  date-expression-2 某一間隔的結束日期。從該值中減去 Date-expression-1,返回兩個參數之間 date-parts 的天數。io

注:通常在使用時間差判斷時須要制定的表達式>數字,方式,比例註冊大於3天的會員 DATEDIFF(day,'xxx','xxx')>3,若是要小於制定天數或月份則表達式<=數字;兼容性

注:若不是日期整數倍則截斷擴展

推薦方法:例如獲取大於3個月的數據,當前時間向前推3個月,若是比註冊時間大則,滿3個月date

用法
    此函數計算兩個指定日期之間日期部分的數目。結果爲日期部分中等於(date2 - date1)的有符號的整數值。

  當結果不是日期部分的偶數倍時,DATEDIFF 將被截斷而不是被舍入。

  當使用 day 做爲日期部分時,DATEDIFF 返回兩個指定的時間之間(包括第二個日期但不包括第一個日期)的午夜數。

  當使用 month 做爲日期部分時,DATEDIFF 返回兩個日期之間(包括第二個日期但不包括第一個日期)出現的月的第一天的數目。

  當使用 week 做爲日期部分時,DATEDIFF 返回兩個日期(包括第二個日期但不包括第一個日期)之間星期日的數目。

  對於更小的時間單位存在溢出值:

    milliseconds 24 天

    seconds 68 年

    minutes 4083 年

    others 沒有溢出限制

  若是超出這些限制,此函數將返回溢出錯誤。

標準和兼容性
    SQL/92 Transact-SQL 擴展。

  SQL/99 Transact-SQL 擴展。

  Sybase 與 Adaptive Server Enterprise 兼容。

下面示例的語句返回 1:

SELECT datediff( hour, '4:00AM', '5:50AM' )

下面的語句返回 102:

SELECT datediff( month, '1987/05/02', '1995/11/15' )

下面的語句返回 0:

SELECT datediff( day, '00:00', '23:59' )

下面的語句返回 4:

SELECT datediff( day,'1999/07/19 00:00','1999/07/23 23:59' )

下面的語句返回 0:

SELECT datediff( month, '1999/07/19', '1999/07/23' )

下面的語句返回 1:

SELECT datediff( month, '1999/07/19', '1999/08/23' )

 

更多:

SqlServer中 SET DATEFIRST

SqlServer 日期格式說明

SqlServer 2012/2014新增Offset,Fetch Next分頁方式

相關文章
相關標籤/搜索