DateDiff 函式詳解

2021-09-30 02:40:33 字數 1749 閱讀 9069

描述

返回兩個日期之間的時間間隔。

語法datediff(interval, date1, date2 [,firstdayofweek][, firstweekofyear]])

datediff 函式的語法有以下引數:

interval 必選。字串表示式,表示用於計算 date1 和 date2 之間的時間間隔。有關數值,請參閱「設定」部分。

date1, date2 必選。日期表示式。用於計算的兩個日期。

firstdayofweek 可選。指定星期中第一天的常數。如果沒有指定,則預設為星期日。有關數值,請參閱「設定」部分。

firstweekofyear 可選。指定一年中第一周的常數。如果沒有指定,則預設為 1 月 1 日所在的星期。有關數值,請參閱「設定」部分。

設定interval 引數可以有以下值:

yyyy 年

q 季度

m 月

y 一年的日數

d 日

w 一周的日數

ww 周

h 小時

m 分鐘

s 秒firstdayofweek 引數可以有以下值:

vbusesystem 0 使用區域語言支援 (nls) api 設定。

vbsunday 1 星期日(預設)

vbmonday 2 星期一

vbtuesday 3 星期二

vbwednesday 4 星期三

vbthursday 5 星期四

vbfriday 6 星期五

vbsaturday 7 星期六

firstweekofyear 引數可以有以下值:

vbusesystem 0 使用區域語言支援 (nls) api 設定。

vbfirstjan1 1 由 1 月 1 日所在的星期開始(預設)。

vbfirstfourdays 2 由在新年中至少有四天的第一周開始。

vbfirstfullweek 3 由在新的一年中第乙個完整的周開始。

說明datediff 函式用於判斷在兩個日期之間存在的指定時間間隔的數目。例如可以使用 datediff 計算兩個日期相差的天數,或者當天到當年最後一天之間的星期數。

要計算 date1 和 date2 相差的天數,可以使用「一年的日數」(「y」)或「日」(「d」)。當 interval 為「一周的日數」(「w」)時,datediff 返回兩個日期之間的星期數。如果 date1 是星期一,則 datediff 計算到 date2 之前星期一的數目。此結果包含 date2 而不包含 date1。如果 interval 是「周」(「ww」),則 datediff 函式返回日曆表中兩個日期之間的星期數。函式計算 date1 和 date2 之間星期日的數目。如果 date2 是星期日,datediff 將計算 date2,但即使 date1 是星期日,也不會計算 date1。

如果 date1 晚於 date2,則 datediff 函式返回負數。

firstdayofweek 引數會對使用「w」和「ww」間隔符號的計算產生影響。

如果 date1 或 date2 是日期文字,則指定的年度會成為日期的固定部分。但是如果 date1 或 date2 被包括在引號 (" ") 中並且省略年份,則在**中每次計算 date1 或 date2 表示式時,將插入當前年份。這樣就可以編寫適用於不同年份的程式**。

在 interval 為「年」(「yyyy」)時,比較 12 月 31 日和來年的 1 月 1 日,雖然實際上只相差一天,datediff 返回 1 表示相差乙個年份。

日期函式 datediff

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

我使用DateDiff函式

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

DATEDIFF函式小問題

declare cmdtext varchar 8000 declare userindex int set cmdtext set userindex 0 while userindex 30beginif userindex 29 select cmdtext cmdtext select co...