SQLserver時間段查詢

eg:
select * from Exception_Log where DATEDIFF(day,OPER_DATE,getdate())<30 ;

/*
oper_date 爲表中查詢出來的時間
getdate()爲SQLServer裏面獲得系統時間的函數
含義:當前時間-查詢出來的時間小於30天
DateDiff具體用法:
*/

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

DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])

DateDiff 函數的語法有以下參數:

參數
interval

必選項。String expression 表示用於計算 date1 和 date2 之間的時間間隔。有關數值,請參閱“設置”部分。

date1, date2

必選項。日期表達式。用於計算的兩個日期。

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  星期六


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 函數顯示今天與給定日期之間間隔天數:

Function DiffADate(theDate)
  DiffADate = "從當天開始的天數:" & DateDiff("d", Now, theDate)
End Function

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章