數據庫計算時間差datediff()方法


首先可恥的貼出一段官方看法

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.

之所以標紅是因為不遇到一次很難會想到這點,建議盡量用秒就好。

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com