SQLSERVER 處理兩個日期相減


描述

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

 

  Sybase中用法:DATEDIFF(dd, pubdate, getdate())

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM