DateDiff 函數

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

語法

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

DateDiff函數語法具有下列引數:

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

引數

說明

interval

必要。 字串運算式,是您用來計算date1date2之間差異的時間間隔。

date1date2

必要。 VariantDate)。 您想要在計算中使用的兩個日期。

firstdayofweek

選用。 指定一周的第一天的 常數 。 如果沒有指定,則會假設星期天。

firstweekofyear

選用。 一個常數,指定一年的第一周。 如果未指定,第一周則會被認為是1月1日所在的周。

設定

間隔 引數 具有下列設定:

設定

描述

yyyy

q

m

月份

y

一年中的某天

d

日期

w

Weekday

ww

h

n

分鐘

s

Firstdayofweek 引數具有下列設定:

常數

描述

vbUseSystem

0

使用 NLS API 設定。

vbSunday

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

若要計算date1date2之間的天數,您可以使用 [一天] ("y")或 Day ("d")。 當interval為 Weekday ("w")時, DateDiff會傳回兩個日期之間的周數。 如果date1位於星期一,則DateDiff會計算星期一到date2的天數。 它會計算date2 ,而不是date1。 不過,如果interval是 Week ("ww"), DateDiff函數會傳回兩個日期之間的行事曆周數。 它會計算date1Date2之間的星期天數。 如果它位於星期天,則DateDiff會計算date2 :但它不會計算date1,即使它確實在星期天。

如果date1參照的時間晚于date2DateDiff函數會傳回負數。

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

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

將12月31日比較為立即後續年份的1月1日時,年份("yyyy")的DateDiff會傳回1,即使已過一天也一樣。

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

DateDiff 查詢範例

運算式

結果

從 ProductSales 中選取 [DateDiff ("yyyy",#01/01/2010 #,[DateofSale])做為運算式 1;

傳回 Date2 與 Date1 之間的差異(考慮是將 Date1 視為最舊,並將 Date2 為最新值)為「年」。 結果:欄位 "DateofSale" 中的值與日期 "01/01/2010" 中的 [年 "數的差異。

選取 [DateDiff] ("q",[DateofSale],Date ())作為 DaysSinceSale 從 ProductSales;

傳回系統日期和 "DateofSale" 與 [季 "(根據行事歷年)數的差異,並顯示在 [DaysSinceSale] 欄中。 傳回系統日期和 "DateofSale" 與 [月] 之間的差異,並顯示在 [DaysSinceSale] 欄中。

選取 [DateDiff] ("y",[DateofSale],Date ())作為 DaysSinceSale 從 ProductSales;

傳回系統日期和 "DateofSale" 與 [天數] 之間的差異,並顯示在 [DaysSinceSale] 欄中。

選取 [DateDiff ("d],[DateofSale],Date ())作為 DaysSinceSale FROM ProductSales;

傳回系統日期和 "DateofSale" 與 [天數] 之間的差異,並顯示在 [DaysSinceSale] 欄中。

選取 [DateDiff] ("w",[DateofSale],Date ())作為 DaysSinceSale 從 ProductSales;

傳回系統日期和 "DateofSale" 與 [工作日] 之間的差異,並顯示在 [DaysSinceSale] 欄中。 如果 "DateofSale" 位於星期一,DateDiff 會計算星期一到系統日期為止的天數。 它會計算系統日期,但不會計算 "DateofSale" 中的值。

選取 [DateDiff] ("ww",[DateofSale],Date ())作為 DaysSinceSale 從 ProductSales;

傳回系統日期和 "DateofSale" 與「行事曆周」數之間的差異,並顯示在 [DaysSinceSale] 欄中。 它會計算「DateofSale」和「系統日期」之間的星期天數。 如果它位於星期天,它會計算系統日期;但它不會計算 "DateofSale",即使它確實落在星期天。

從 ProductSales 中選取 [DateDiff] ("h",[DateTime],Date ())作為 DaysSinceSale。

傳回系統日期與 "DateTime" (以 "小時" 為單位)的差,並顯示在 [DaysSinceSale] 欄中。

從 ProductSales 中選取 [DateDiff] ("n",[DateTime],Date ())作為 DaysSinceSale。

傳回系統日期與 "DateTime" (以 "分鐘" 為單位)的差,並顯示在 [DaysSinceSale] 欄中。

從 ProductSales 中選取 [DateDiff] ("s",[DateTime],Date ())作為 DaysSinceSale。

傳回系統日期和 "DateTime" (以秒為單位)的差,並顯示在 [DaysSinceSale] 欄中。

運算式範例

在運算式中使用 DateDiff 函數     您可以使用DateDiff函數,隨時隨地使用運算式。 例如,假設您有一個表單,可用於完成客戶訂單。 在 [訂單] 資料表中,您有一個名為 ReceiveBefore 的欄位,其中包含客戶接收訂單所需的日期。 您可以將DateDiff函數與表單上的文字方塊搭配使用,以顯示在訂單必須發貨前剩餘的天數。

假設您需要十天的時間來運送任何訂單,您可以設定文字方塊的 [控制項來源] 屬性,如下所示:

= DateDiff ("d",Now (),[訂單]. [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

附註:  本頁面是經由自動翻譯而成,因此文中可能有文法錯誤或不準確之處。 讓這些內容對您有所幫助是我們的目的。 告訴我們這項資訊是否有幫助? 這裡是供您參考的英文文章

請參閱

選擇正確的日期函數

增進您的 Office 技巧
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與我們的其中一個 Office 支援專員連絡以深入了解您的意見。

×