数据库计算时间差datediff()方法

时间:2023-01-27 00:43:59

首先可耻的贴出一段官方看法

http://www.w3school.com.cn/sql/func_datediff.asp

定义和用法

DATEDIFF() 函数返回两个日期之间的天数。

语法

DATEDIFF(datepart,startdate,enddate)

startdate  enddate 参数是合法的日期表达式。

datepart 参数可以是下列的值:

datepart 缩写
yy, yyyy
季度 qq, q
mm, m
年中的日 dy, y
dd, d
wk, ww
星期 dw, w
小时 hh
分钟 mi, n
ss, s
毫秒 ms
微妙 mcs
纳秒 ns

实例

例子 1

使用如下 SELECT 语句:

SELECT DATEDIFF(day,'2008-12-29','2008-12-30') AS DiffDate

结果:

DiffDate
1

例子 2

使用如下 SELECT 语句:

SELECT DATEDIFF(day,'2008-12-30','2008-12-29') AS DiffDate

结果:

DiffDate
-1

 

 上面一段是著名的网页学习网站w3school中有关datediff()方法的描述。但此中却少了一个重要的信息:那就是最大值

 

 使用datediff方法会得到一个long类型的数字,但这个数字对毫秒和秒得出的最大值是有限制的。对于毫秒最大数是24天20小时31分零23.647秒。

对于秒最大数是68年。

如果超过最大值的话,会有如下错误信息显示:Difference of two datetime fields caused overflow at runtime.

之所以标红是因为不遇到一次很难会想到这点,建议尽量用秒就好。