sql資料庫中的datediff函式是什麼意思

2021-03-11 08:38:50 字數 5780 閱讀 3284

1樓:匿名使用者

sql中datediff的用法

datediff

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

語法datediff ( datepart , startdate , enddate )

datepart

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

日期部分 縮寫

year yy, yyyy

quarter **, 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 或 **alldatetime 值或日期格式字串的表示式。

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

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

為避免模糊,請使用四位數的年份。

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

enddate

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

返回型別

integer

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

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

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

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

use pubs

goselect datediff(day, pubdate, getdate()) as no_of_days

from titles

go謝謝!

2樓:

樓上已經分析的

復很清楚了!制

我給你舉個例子

select datediff(day,'2010-07-08','2010-07-09')

結果顯示為 1

day為計算兩個日期的天的差

month為計算兩個的月份差。就是7-6=1如:

select datediff(day,'2010-06-08','2010-07-09')

結果也為1

同理還有year,minute,second 等

sql中有datediff這個函式嗎?如果有,是什麼意思?

3樓:匿名使用者

有。具體參考回:答

sql裡的這個datediff("d",time,now()) 是什麼意思?

4樓:匿名使用者

datediff(interval, time1, time2)datediff求兩個日期間的間隔數,如果time1>time2返回值為負數.

interval是間隔數的單位,有下面這些常用值:

yyyy

q 季度

m 月y 一年的日數

d 日w 一週的日數

ww 周

h 小時

n 分鐘

s 秒上面的datediff("d",time,now()) < 7 就是取time到現在的時間間隔小於7的記錄,也就是一週內的記錄.

5樓:匿名使用者

time與現在的時間的間隔小於7天

dateadd和datediff在sql語句中是什麼意思...?

6樓:匿名使用者

datediff是計算兩個時間間的差,如差幾天或是幾個月,或是幾年等select datediff(day,'2008.9.2','2008.10.28')

dateadd則是算出在已知時間的基礎上再加多少天是幾月幾日.

select dateadd(year,10,getdate())select dateadd(month,10,getdate())select dateadd(day,10,getdate())

7樓:

dateadd 函式

返回已新增指定時間間隔的日期。

datediff 函式

返回 variant (long) 的值,表示兩個指定日期間的時間間隔數目。

8樓:love飄逸

dateadd函式 返回

返回包含一個日期的 variant (date),這一日期還加上了一段時間間隔。

語法dateadd(interval, number, date)

dateadd 函式語法中有下列命名引數:

部分 描述

interval 必要。字串表示式,是所要加上去的時間間隔。

number 必要。數值表示式,是要加上的時間間隔的數目。其數值可以為正數(得到未來的日期),也可以為負數(得到過去的日期)。

date 必要。variant (date) 或表示日期的文字,這一日期還加上了時間間隔。

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

設定 描述

yyyy 年

q 季m 月y 一年的日數

d 日w 一週的日數

ww 周

h 時n 分鐘

s 秒說明可以使用 dateadd 函式對日期加上或減去指定的時間間隔。例如,可以用 dateadd 來計算距今天為三十天的日期;或者計算距現在為 45 分鐘的時間。

為了對 date 加上「日」,可以使用「一年的日數」 (「y」),「日」 (」d」) 或「一週的日數」 (」w」)。

dateadd 函式將不返回有效日期。在以下例項中將 1 月31 日加上一個月:

dateadd(m, 1, 31-jan-95)

上例中,dateadd 返回 1995 年 2 月 28 日,而不是 1995 年 2 月 31 日。如果 date 是 1996 年 1 月 31 日,則由於 1996 年是閏年,返回值是 1996 年 2 月 29 日。

如果計算的日期超前 100 年(減去的年度超過 date 中的年份),就會導致錯誤發生。

如果 number 不是一個 long 值,則在計算時取最接近的整數值來計算。

注意 dateadd 返回值的格式由 control panel設定決定,而不是由傳遞到date 引數的格式決定。

****************************************=

datediff: sql server函式

返回 variant (long) 的值,表示兩個指定日期間的時間間隔數目。

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

datediff 函式語法中有下列命名引數:

部分 描述

interval 必要。字串表示式,表示用來計算date1 和 date2 的時間差的時間間隔

date1□date2 必要;variant (date)。計算中要用到的兩個日期。

firstdayofweek 可選。指定一個星期的第一天的常數。如果未予指定,則以星期日為第一天。

firstweekofyear 可選。指定一年的第一週的常數。如果未予指定,則以包含 1 月 1 日的星期為第一週。

設定interval 引數的設定值如下:

設定 描述

yyyy 年

q 季m 月y 一年的日數

d 日w 一週的日數

ww 周

h 時n 分鐘

s 秒firstdayofweek 引數的設定值如下:

常數 值 描述

vbusesystem 0 使用 nls api 設定。

vbsunday 1 星期日(預設值)

vbmonday 2 星期一

vbtuesday 3 星期二

vbwednesday 4 星期三

vbthursday 5 星期四

vbfriday 6 星期五

vbsaturday 7 星期六

常數 值 描述

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 剛好是星期日,則 date2 也會被加進 datediff 的計數結果中;但不論 date1 是否為星期日,都不將它算進去。

如果 date1 比 date2 來得晚,則 datediff 函式的返回值為負數。

firstdayofweek 引數會影響使用時間間隔符號 「w」 或 「ww」 計算的結果。

如果 date1 或 date2 是日期文字,則指定的年份成為該日期的固定部分。但是,如果 date1 或 date2 用雙引號 (" ") 括起來,且年份略而不提,則在每次計算表示式 date1 或 date2 時,當前年份都會插入到**之中。這樣就可以書寫適用於不同年份的程式**。

在計算 12 月 31 日和來年的 1 月 1 日的年份差時,datediff 返回 1 表示相差一個年份,雖然實際上只相差一天而已。

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

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

datediff函式在access和mssql中的使用區別

access中用法:datediff('day', pubdate, now())

mssql中用法:datediff(day, pubdate, getdate())

sql資料庫如何還原,SQL資料庫如何還原

把資料庫的備份檔案放到伺服器的任意目錄下先,然後按下面的步驟做。如何從備份裝置還原備份 企業管理器 從備份裝置還原備份 伺服器組,然後伺服器。資料庫 資料夾,右擊資料庫,指向 所有任務 子選單,然後單擊 還原資料庫 命令。在 還原為資料庫 框中,如果要還原的資料庫名稱與顯示的預設資料庫名稱不同,請在...

SQL資料庫關係圖,SQL 資料庫關係圖

在新建資料庫或附加資料庫後,想新增關係表,結果出現下面的錯誤 此資料庫沒有有效所有者,因此無法安裝資料庫關係圖支援物件。若要繼續,請首先使用 資料庫屬性 對話方塊的 檔案 頁或alter authorization語句將資料庫所有者設定為有效登入名,然後再新增資料庫關係圖支援物件。按照第一種方式更改...

sql資料庫自動備份,SQL資料庫自動備份

我給你截幾張圖你看看哈,希望對你有所幫助。1 2 34 5 7 6 8 9 10 企業管理器裡 在所要進行備份的資料庫上 右鍵 所有任務 維護計劃 點四次下一步 就是備份了 說明 這個頁面上你可以點更改來 詳細的配置如 每週 週五00 00自動備份 及路徑設定等。問題補充 強調一下,備份的檔名是 資...