會傳回 Variant (Long),指定兩個指定日期之間的時間間隔數目。

語法

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

DateDiff 函數語法具有這些引數:

提示:  在 Access 2010 中,運算式建立器具有 IntelliSense,因此您可以查看運算式需要哪些引數。 

引數

描述

interval

必要。 這是您用於計算 date1 與 date2 之間差的 時間間隔字串運算式

date1date2

必要。 變化 (日期) 。 這是要用於計算的兩個日期。

firstdayofweek

選用。 指定 常數 日的第一天。 如果未指定,會假設為星期日。

firstweekofyear

選用。 指定一年的第一周的常數。 如果未指定,則假設第一周是 1 月 1 日發生的周。

設定

時間間隔引數 設定:

設定

描述

yyyy

q

m

月份

y

一年中的一天

d

日期

w

Weekday

ww

h

n

分鐘

s

firstdayofweek 自 變數具有以下設定:

常數

描述

vbUseSystem

0

使用 NLS API 設定。

vbS本

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 來計算兩個日期之間的天數,或今天到年底之間的周數。

若要計算日期 1日期2之間的天數,您可以使用一年中的日期 ("y") 或 Day ("d") 。 當 interval 是 Weekday ("w") 時 ,DateDiff 會 返回兩個日期之間的周數。 如果 date1 落在星期一 ,DateDiff 會計算星期一到 date2 的個數。 它會計算date2,而非date1。 不過如果 interval 是周 ("ww") ,DateDiff函數會返回兩個日期之間的日曆周數。 它會計算日期1 和 date2 之間的星期日 數目DateDiff 會 計算 日期2 如果落在星期日;但它不會計算 date1,即使它確實落在星期日。

如果 date1 是指比 date2晚的時間點 ,DateDiff 函數會 回回負數。

firstdayofweek 引數會影響使用 "w" 和 "ww" 間隔符號的計算。

如果 date1date2 是 日期文字,則指定的年份會成為該日期的永久部分。 不過,如果 date1date2 以雙引號括住 (" ") ,而您省略年份,則每次評估 date1date2 運算式時,您的程式碼會插入目前年份。 這可撰寫可在不同年使用的驗證碼。

比較 12 月 31 日與後一年的 1 月 1 日時,Year ("yyyy") 的 DateDiff 會) 即使只有一天已經過。

附註: 為 date1date2,如果 日曆 屬性設定為西曆,則提供的日期必須是西曆。 如果日曆是回曆,則提供的日期必須是回曆。

DateDiff 查詢範例

運算式

結果

SELECT DateDiff ("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales;

將 Date2 與 Date1 之間的差 (日期1 視為最舊,而 Date2 視為最新的) "年" 數。 結果:"DateofSale" 欄位中的值與日期 "01/01/2010" 之間的差為 「年」數位。

SELECT DateDiff ("q",[DateofSale],Date () ) AS DaysSinceSale FROM ProductSales;

根據年數 (,將系統日期與 "DateofSale" 之間的差值以「季數」 () 並會顯示在 「DaysSinceSale」欄中。 將系統日期與「DateofSale」之間的差值以「月」數表示,並顯示在「DaysSinceSale」欄中。

SELECT DateDiff ("y",[DateofSale],Date () ) AS DaysSinceSale FROM ProductSales;

將系統日期與「DateofSale」之間的差值以 「天數」表示,並顯示在 「DaysSinceSale」欄中。

SELECT DateDiff ("d",[DateofSale],Date () ) AS DaysSinceSale FROM ProductSales;

將系統日期與「DateofSale」之間的差值以 「天數」表示,並顯示在 「DaysSinceSale」欄中。

SELECT DateDiff ("w",[DateofSale],Date () ) AS DaysSinceSale FROM ProductSales;

將系統日期與「DateofSale」之間的差值以「工作日」數位表示,並顯示在 「DaysSinceSale」欄中。 如果 "DateofSale" 落在星期一,DateDiff 會計算星期一到系統日期為止的個數。 它會計算系統日期,但不會計算 "DateofSale" 中的值。

SELECT DateDiff ("ww",[DateofSale],Date () ) AS DaysSinceSale FROM ProductSales;

將系統日期與"DateofSale" 之間的差值以 "Calender Weeks" 數位表示,並顯示在 "DaysSinceSale" 欄中。 它會計算 「DateofSale」和「系統日期」之間的星期日數目。 如果落在星期日,它會計算系統日期;但它不會計算 「DateofSale」,即使它落在星期日。

SELECT DateDiff ("h",[DateTime],Date () ) AS DaysSinceSale FROM ProductSales;

將系統日期與「日期時間」之間的差值以「時數」表示,並顯示在 「DaysSinceSale」欄中。

SELECT DateDiff ("n",[DateTime],Date () ) AS DaysSinceSale FROM ProductSales;

將系統日期與「日期時間」之間的差值以 「分鐘數」表示,並顯示在 「DaysSinceSale」欄中。

SELECT DateDiff ("s",[DateTime],Date () ) AS DaysSinceSale FROM ProductSales;

將系統日期與「日期時間」之間的差值以「秒數」表示,並顯示在 「DaysSinceSale」欄中。

運算式範例

在運算式中使用 DateDiff 函數     您可以在任何可以使用運算式的地方使用 DateDiff 函數。 例如,假設您有一個表單,您用於完成客戶訂單。 在訂單資料表中,有一個名為 ReceiveBefore 的欄位,其中包含客戶需要接收訂單的日期。 您可以在表單上將 DateDiff 函數與文字方塊一起使用,以顯示訂單必須出貨前剩下幾天。

假設出貨任何訂單需要十天的時間,您設定文字方塊的 Control Source 屬性如下:

=DateDiff ("d", Now () , [Orders]。[ReceiveBefore]) -10

當您在表單檢視開啟表單時,文字方塊會顯示訂單必須出貨前剩下幾天。 如果客戶需要收到訂單之前還有不到 10 天的時間,文字方塊中的數位會為負數,且指出訂單若立即出貨,會延遲幾天。

VBA 範例

VBA 程式碼中使用 DateDiff 函數    

此範例使用 DateDiff 函數顯示從給定日期到今天之間的天數。

Dim TheDate As Date    ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg

選擇正確的日期函數

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×