SQL DATEDIFF 函数

SQL DATEDIFF() 函数用来返回2个时间的差。这个函数在SQL Server和MySQL中都有,但语法上有不同。

SQL CASE 语法

MySQL:

DATEDIFF(Date1, Date2)

Date1 和 Date2 可以是任何有效的日期/时间表达式,但只计算日期部分,返回天数的差别,而时间部分会被忽略。

SQL Server:

DATEDIFF(datepart, Date1, Date2)

Date1 和 Date2 可以是任何有效的日期/时间表达式,datepart 可以是以下的任何一个:

datepart 缩写
year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d
week wk, ww
hour hh
minute mi, n
second ss, s
millisecond ms
microsecond mcs
nanosecond ns
TZoffset tz
ISO_WEEK sowk, isoww

注意: 在 MySQL 中结果 = Date1 – Date2, 而在 SQL Server 中结果 = Date2 – Date1.

SQL DATEDIFF 范例

MySQL 范例:

SELECT DATEDIFF('2011-09-05 13:00:00','2011-09-08')

结果是 -3

SELECT DATEDIFF('2011-10-02','2011-09-08')

结果是: 24

SELECT DATEDIFF('2011-09-20 8:12:00','2011-09-20 10:23:00')

结果是: 0

SQL Server 范例:

SELECT DATEDIFF(yyyy, '2010-09-01', '2011-07-01')

结果是: 1

SELECT DATEDIFF(hh, '2011-09-01', '2011-07-01')

结果是: -1488

SELECT DATEDIFF(hh, '2011-09-20 8:12:00', '2011-09-20 10:23:00')

结果是: 2