sql關於dateadd和datediff的用法說明

2021-04-21 12:19:43 字數 4047 閱讀 2215

1樓:古舟蓑笠翁

select datediff(wk,0,dateadd(day,-1,getdate())) --從2023年

bai1月1日到du昨天過了多少zhi星期dao

select dateadd(wk,datediff(wk,0,dateadd(day,-1,getdate())),0) --在2023年1月1日日期內上加上從2023年1月1日到現在的星期數容

2樓:

datediff是計算兩個時間之抄間的差襲。

dateadd是一個

bai時間加上數du字,得zhi出另一個時間。

第一個select 是計算從最初時

dao間到昨天的週數。0應該是2023年的第一天吧。反正我沒有這樣寫過,都是寫一個時間的。

第二個select是計算從0經上個select值的周後的時間。

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

3樓:匿名使用者

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())

4樓:

dateadd 函式

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

datediff 函式

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

5樓: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())

6樓:匿名使用者

datediff函式計算兩個日期之間的小時、天、周、月、年等時間間隔總數。 dateadd函式計算一個日期通過給時間間隔加減來獲得一個新的日期。

關於SQL語句的問題。多謝,關於SQL語句的一個問題。多謝!

利用b表更新a表,全部覆蓋 update a set a.name b.name,a.age b.age from a,b where a.id b.id update a set a.name b.name,a.age b.age from a a,b b where a.id b.id 表結構設...

sql語句。有點繁瑣,高手請進,關於SQL語句的問題,高手請進

update jit bzqty set wp 尾數存量 where wp 機臺存量 and qty 1000 update jit bzqty set qty select a.qty b.qty qty from jit bzqty a,jit bzqty b where a.wp 機臺存量 a...

VZ1iV1730DA手機支援手機和記憶體卡互相移動嗎

可以選用多種有線 無線wifi 3g通訊方式,產品適用於超市 可以選用多種有線 無線wifi 3g通訊方式,產品適用於超市 酒店 菸草行業等各種需要金融收單。菸草行業等各種可以選用多種有線 無線wifi 3g通訊方式,產品適用於超市 酒店 菸草行業等各種需要金融收單。你好!進入設定 多屏互動 開啟多...