使用DATEDIFF函式計算時間差

2021-08-23 13:42:07 字數 1326 閱讀 8327

返回跨兩個指定日期的日期和時間邊界數。

語法datediff ( datepart , startdate , enddate )

引數datepart

是規定了應在日期的哪一部分計算差額的引數。下表列出了 microsoft® sql server™ 識別的日期部分和縮寫。

日期部分 縮寫

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

startdate

是計算的開始日期。startdate 是返回 datetime 或 smalldatetime 值或日期格式字串的表示式。

因為 smalldatetime 只精確到分鐘,所以當用 smalldatetime 值時,秒和毫秒總是 0。

如果您只指定年份的最後兩位數字,則小於或等於"兩位數年份截止期"配置選項的值的最後兩位數字的數字所在世紀與截止年所在世紀相同。大於該選項的值的最後兩位數字的數字所在世紀為截止年所在世紀的前乙個世紀。例如,如果 two digit year cutoff 為 2049(預設),則 49 被解釋為 2049,2050 被解釋為 1950。為避免模糊,請使用四位數的年份。

有關時間值指定的更多資訊,請參見時間格式。有關日期指定的更多資訊,請參見 datetime 和 smalldatetime。

enddate

是計算的終止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字串的表示式。

返回型別

integer

注釋startdate 是從 enddate 減去。如果 startdate 比 enddate 晚,返回負值。

當結果超出整數值範圍,datediff 產生錯誤。對於毫秒,最大數是 24 天 20 小時 31 分鐘零 23.647 秒。對於秒,最大數是 68 年。

計算跨分鐘、秒和毫秒這些邊界的方法,使得 datediff 給出的結果在全部資料型別中是一致的。結果是帶正負號的整數值,其等於跨第乙個和第二個日期間的 datepart 邊界數。例如,在 1 月 4 日(星期日)和 1 月 11 日(星期日)之間的星期數是 1。

示例此示例確定在 pubs 資料庫中標題發布日期和當前日期間的天數。

use pubsgoselect datediff(day, pubdate, getdate()) as no_of_daysfrom titlesgo

我使用DateDiff函式

最近做的 專案,多使用者,要求發文章的時候有積分獎勵,修改文章時也有相同獎勵。但要求每天修改同乙個文章只能獎勵一次,不管修改多少次。我用資料庫儲存過程來實現此功能 判斷當前時間與其最晚修改時間是否相差一天以上,是的話可以加分,反之不加 用到乙個函式 datediff d 時間1,時間2 函式介紹 返...

日期函式 datediff

命令格式 datediff datetime1,datetime2,datepart 用途 計算兩個時間的差值,並轉換成指定的單位,如 秒。引數說明 datetime1 datetime2 datetime型別,被減數和減數,若輸入為string型別會隱式轉換為datetime型別後參與運算,其它型...

DateDiff 函式詳解

描述 返回兩個日期之間的時間間隔。語法datediff interval,date1,date2 firstdayofweek firstweekofyear datediff 函式的語法有以下引數 interval 必選。字串表示式,表示用於計算 date1 和 date2 之間的時間間隔。有關數...