T-SQL 中DateDiff 函數

DateDiff函數簡介

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

示例  
示例確定在 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())

語法
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   表示相差一個年份。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章