服務(wù)熱線
153 8323 9821
返回 Variant (Long) 的值,表示兩個(gè)指定日期間的時(shí)間間隔數(shù)目。
語法
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
DateDiff 函數(shù)語法中有下列命名參數(shù):
部分 描述
interval 必要。字符串表達(dá)式,表示用來計(jì)算date1 和 date2 的時(shí)間差的時(shí)間間隔
Date1□date2 必要;Variant (Date)。計(jì)算中要用到的兩個(gè)日期。
Firstdayofweek 可選。指定一個(gè)星期的第一天的常數(shù)。如果未予指定,則以星期日為第一天。
firstweekofyear 可選。指定一年的第一周的常數(shù)。如果未予指定,則以包含 1 月 1 日的星期為第一周。
interval 參數(shù)的設(shè)定值如下: 設(shè)置 描述 yyyy 年 q 季 m 月 y 一年的日數(shù) d 日 w 一周的日數(shù) ww 周 h 時(shí) n 分鐘 s 秒 firstdayofweek 參數(shù)的設(shè)定值如下: 常數(shù) 值 描述 vbUseSystem 0 使用 NLS API 設(shè)置。 vbSunday 1 星期日(缺省值) vbMonday 2 星期一 vbTuesday 3 星期二 vbWednesday 4 星期三 vbThursday 5 星期四 vbFriday 6 星期五 vbSaturday 7 星期六 常數(shù) 值 描述 vbUseSystem 0 用 NLS API 設(shè)置。 vbFirstJan1 1 從包含 1 月 1 日的星期開始(缺省值)。 vbFirstFourDays 2 從第一個(gè)其大半個(gè)星期在新的一年的一周開始。 vbFirstFullWeek 3 從第一個(gè)無跨年度的星期開始。 DateDiff 函數(shù)可用來決定兩個(gè)日期之間所指定的時(shí)間間隔數(shù)目。例如,可以使用 DateDiff 來計(jì)算兩個(gè)日期之間相隔幾日,或計(jì)算從今天起到年底還有多少個(gè)星期。 為了計(jì)算 date1 與 date2 相差的日數(shù),可以使用“一年的日數(shù)”(y) 或“日”(d)。當(dāng) interval 是“一周的日數(shù)”(w) 時(shí),DateDiff 返回兩日期間的周數(shù)。如果 date1 是星期一,DateDiff 計(jì)算到 date2 為止的星期一的個(gè)數(shù)。這個(gè)數(shù)包含 date2 但不包含 date1。不過,如果 interval 是“周”(ww),則 DateDiff 函數(shù)返回兩日期間的“日歷周”數(shù)。由計(jì)算 date1 與 date2 之間星期日的個(gè)數(shù)而得。如果 date2 剛好是星期日,則 date2 也會被加進(jìn) DateDiff 的計(jì)數(shù)結(jié)果中;但不論 date1 是否為星期日,都不將它算進(jìn)去。 如果 date1 比 date2 來得晚,則 DateDiff 函數(shù)的返回值為負(fù)數(shù)。 firstdayofweek 參數(shù)會影響使用時(shí)間間隔符號 “W” 或 “WW” 計(jì)算的結(jié)果。 如果 date1 或 date2 是日期文字,則指定的年份成為該日期的固定部分。但是,如果 date1 或 date2 用雙引號 (" ") 括起來,且年份略而不提,則在每次計(jì)算表達(dá)式 date1 或 date2 時(shí),當(dāng)前年份都會插入到代碼之中。這樣就可以書寫適用于不同年份的程序代碼。 在計(jì)算 12 月 31 日和來年的 1 月 1 日的年份差時(shí),DateDiff 返回 1 表示相差一個(gè)年份,雖然實(shí)際上只相差一天而已。函數(shù)說明
此示例確定在 pubs 數(shù)據(jù)庫中標(biāo)題發(fā)布日期和當(dāng)前日期間的天數(shù)。
USE pubsGOSELECT DATEDIFF(day, pubdate, getdate()) AS no_of_daysFROM titlesGO
DATEDIFF函數(shù)在Access和MSSQL中的使用區(qū)別
ACCESS中用法:DATEDIFF( day , pubdate, Now())
MSSQL中用法:DATEDIFF(day, pubdate, getdate())
Sybase中用法:DATEDIFF(dd, pubdate, getdate())