Applies To
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

語法

DateDiff ( interval, date1, date2 [firstdayofweek] [first weekofyear] )

DateDiff 函數語法包含以下參數:

引數

描述

interval

必要。 字串表達式,就是你用來計算 date1date2 差異的時間區間。

約會1約會2

必要。 變體 (日期) 。 計算時要用兩個日期。

週第一天

可省略。 一個固定的恆定,標示著一週的第一天。 若未特別說明,則假設是星期日。

學年第一週

可省略。 一個標示新年第一週的常數。 若未特別說明,第一週則假設為1月1日的那一週。

設定

區間 論證具有以下設定:

設定

描述

yyyy

q

m

月份

y

一年的星期幾

d

日期

w

Weekday

ww

h

n

分鐘

s

「第一天」 論證的設定如下:

常數

描述

vbUseSystem

0

使用 NLS API 設定。

vb星期日

1

星期天 (預設)

VB星期一

2

星期一

vb星期二

3

星期二

vb星期三

4

星期三

vb星期四

5

星期四

vb星期五

6

星期五

vb星期六

7

星期六

常數

描述

vbUseSystem

0

使用 NLS API 設定。

vbFirst1月1日

1

從1月1日 (預設) 的那週開始。

vb第一四天

2

從新年至少有四天的第一週開始。

vb第一週完整週

3

從今年第一個完整週開始。

註解

你可以使用 DateDiff 函數來判斷兩個日期之間存在多少個指定的時間區間。 例如,你可以用 DateDiff 來計算兩個日期之間的天數,或是今天和年底之間的週數。

要計算 日期1日期2之間的天數,您可以使用年份的日期 (“y”) 或日期 (“d”) 。 當區間為 Weekday (“w”) ,DateDiff 會回傳兩個日期之間的週數。 如果 日期1 落在星期一, DateDiff 會計算到 日期2之前的星期一數量。 它會計算 日期2 ,但不計算 日期1。 然而,如果 區間 是週 (「ww」) , 則 DateDiff 函數會回傳兩個日期之間的日曆週數。 它會計算 date1date2 之間的星期日數量。 DateDiff 若落在星期日,則計入 date2;但即使日期1落在星期天,也不算入。

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

Firstdayofweek 論證影響使用「w」和「ww」區間符號的計算。

如果 日期1日期2 是字面日期,指定的年份將成為該日期的永久部分。 然而,如果 date1date2 以雙引號 (“ ”) 包圍,且省略年份,每次評估 date1date2 表達式時,代碼中會插入當前年份。 這使得可以撰寫可用於不同年份的程式碼。

當將12月31日與緊接著一年的1月1日比較時,年份 (“yyyy”) 的 DateDiff 會回傳1,儘管實際上只過了一天。

附註: 對於 日期1日期2,如果 曆法屬性 設定是公曆,則所提供的日期必須是公曆。 如果曆法是伊斯蘭曆,則所提供的日期必須是伊斯蘭曆。

DateDiff 查詢範例

Expression

結果​​

選擇日期差異 (“yyyy”,#01/01/2010#,[DateofSale]) 作為 Expr1 來自 ProductSales;

回傳日期2與日期1的差額 (將日期1視為最舊,日期2為最新) 視為「年份」的數量。 結果:「DateofSale」欄位與日期「01/01/2010」作為「Years」數量的差異。

選擇日期差異 (“q”,[銷售日期],日期 () ) AS 銷售後的天數 來自 ProductSales;

回傳系統日期與「銷售日期」之間的差額,以「季度」數量 (,基於日曆年份) ,並顯示在「DaysSinceSale」欄位。 會將系統日期與「DateofSale」之間的差值回傳為「Months」數,並在「DaysSinceSale」欄位顯示。

選擇日期差異 (“y”,[銷售日期],日期 () ) AS 銷售後的天數 來自 ProductSales;

回傳系統日期與「DateofSale」之間的差值,作為「Days」數,並在「DaysSinceSale」欄位顯示。

選擇日期差異 (“d”、[銷售日期],日期 () ) 如銷售天數 來自 ProductSales;

回傳系統日期與「DateofSale」之間的差值,作為「Days」數,並在「DaysSinceSale」欄位顯示。

選擇日期差異 (“w”,[銷售日期],日期 () ) 與銷售天數相同 來自 ProductSales;

回傳系統日期與「DateofSale」之間的差額,顯示為「平日」數量,並顯示在「DaysSinceSale」欄位。 如果「銷售日期」落在星期一,DateDiff 會計算到系統日期為止的星期一數量。 它會計算系統日期,但不會計算「DateofSale」中的價值。

選擇日期差異 (“ww”,[銷售日期],日期 () ) AS 銷售日數 來自 ProductSales;

回傳系統日期與「DateofSale」之間的差值,顯示為「日曆週數」,並顯示在「DaysSinceSale」欄位。 它會計算「銷售日期」到「系統日期」之間的星期日數量。 若系統日期落在星期日,則會計算系統日期;但即使「銷售日期」落在星期日,也不算入。

選擇日期差異 (“h”,[DateTime],日期 () ) AS DaysSinceSale 來自 ProductSales;

回傳系統日期與「DateTime」之間的差值,顯示為「Hours」數,並顯示在「DaysSinceSale」欄位。

選擇日期差異 (“n”,[DateTime],日期 () ) AS DaysSinceSale 來自 ProductSales;

回傳系統日期與「DateTime」之間的差值,顯示為「分鐘數」,並顯示在「DaysSinceSale」欄位。

選擇日期差異 (“s”,[DateTime],日期 () ) 作為 DaysSinceSale 來自 ProductSales;

回傳系統日期與「DateTime」之間的差值,顯示為「秒數」,並顯示在「DaysSinceSale」欄位。

在表達式中使用 DateDiff 函式

你可以在任何能使用表達式的地方使用 DateDiff 函數。 舉例來說,假設你有一個用來履行客戶訂單的表單。 在訂單表中,有一個名為 ReceiveBefore 的欄位,裡面包含客戶需要收到訂單的日期。 你可以用 DateDiff 功能,在表單上的文字框顯示訂單還剩多少天數。

假設任何訂單出貨需要十天,你可以將文字框的 控制來源 屬性設定如下:

=DateDiff (“d”,現在 () ,[階數]。[接收前]) -10

當你在表單檢視中打開表單時,文字框會顯示訂單還剩多少天數才必須出貨。 如果距離客戶需要收到訂單的時間不到 10 天,文字框中的數字為負數,表示若立即出貨訂單將延遲多少天。

在 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?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。