SQL Server 函数

SQL Server (Transact-SQL) DATEDIFF() 函数根据指定的单位返回两个日期值之间的差值。

语法

DATEDIFF(datepart, date1, date2) 

    参数

    datepart

    必需. 指定结果的单位类型。它可以是以下值之一:

    日期部分简写
    yearyy, yyyy
    quarterqq, q
    monthmm, m
    dayofyeardy, y
    daydd, d
    weekwk, ww
    weekdaydw, w
    hourhh
    minutemi, n
    secondss, s
    millisecondms
    microsecondmcs
    nanosecondns
    date1必需. 指定第一个日期值来计算差异 (date1 - date2)。
    date2必需. 指定第二个日期值以计算差异 (date1 - date2)。

    返回值

    返回以指定单位表示的两个日期值之间的差值。

    示例 1 :

    下面的示例显示了DATEDIFF()函数的用法。

    SELECT DATEDIFF(year, '2019-10-25', '2024-10-15');
    Result: 5
    
    SELECT DATEDIFF(yyyy, '2019-10-25', '2024-10-15');
    Result: 5
    
    SELECT DATEDIFF(yy, '2019-10-25', '2024-10-15');
    Result: 5
    
    SELECT DATEDIFF(quarter, '2019-10-25', '2024-10-15');
    Result: 20
    
    SELECT DATEDIFF(month, '2019-10-25', '2024-10-15');
    Result: 60
    
    SELECT DATEDIFF(day, '2019-10-15 10:20:25', '2019-10-25 12:40:45');
    Result: 10
    
    SELECT DATEDIFF(hour, '2019-10-15 10:20:25', '2019-10-25 12:40:45');
    Result: 242
    
    SELECT DATEDIFF(minute, '2019-10-15 10:20:25', '2019-10-25 12:40:45');
    Result: 14540
    
    SELECT DATEDIFF(second, '2019-10-15 10:20:25', '2019-10-25 12:40:45');
    Result: 872420 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    示例2:

    考虑名为 Orders 的数据库表,其中包含以下记录:

    OrderQuantityPriceOrderDatePaymentDate
    1001.582017-08-182017-08-20
    1201.612018-03-232018-03-28
    1251.782018-09-122018-09-22
    501.802019-01-162019-01-17
    2001.722020-02-062020-02-08

    要计算结算交易所需的天数,可以使用以下查询:

    SELECT *, DATEDIFF(day, PaymentDate, OrderDate) AS SettlementDays
    FROM Orders; 
    • 1

    这将产生类似于以下内容的结果:

    OrderQuantityPriceOrderDatePaymentDateSettlementDays
    1001.582017-08-182017-08-202
    1201.612018-03-232018-03-285
    1251.782018-09-122018-09-2210
    501.802019-01-162019-01-171
    2001.722020-02-062020-02-082