Applies ToAccess dla Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Zwraca wartość typu wariant (liczba długa) określającą liczbę interwałów między dwiema określonymi datami.

Składnia

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

W składni funkcji DateDiff występują następujące argumenty:

Argument

Opis

interval

Argument wymagany. Wyrażenie ciągu będące interwałem czasu używanym do obliczania różnicy między datą 1 a datą2.

data1, data2

Argument wymagany. Wariant (data). Dwie daty, których chcesz użyć w obliczeniach.

Firstdayofweek

Argument opcjonalny. stała określająca pierwszy dzień tygodnia. Jeśli nie określono, przyjmuje się, że niedziela.

firstweekofyear

Argument opcjonalny. Stała określająca pierwszy tydzień roku. Jeśli nie określono, przyjmuje się, że pierwszy tydzień jest tygodniem, w którym występuje 1 stycznia.

Ustawienia

Interwał argument ma następujące ustawienia:

Ustawienie

Opis

rrrr

Rok

q

Kwartał

m

Miesiąc

y

Dzień roku

d

Dzień

w

Weekday

ww

Tydzień

g

Godzina

n

Minuta

s

Sekunda

Argument pierwszy_dzień_tygodnia zawiera następujące ustawienia:

Stała

Value (Wartość)

Opis

vbUseSystem

0

Użyj ustawienia interfejsu API NLS.

vbSunday

1

Niedziela (domyślnie)

vbMonday

2

Poniedziałek

vbTuesday

3

Wtorek

vbWednesday

4

Środa

vbThursday

5

Czwartek

vbFriday

6

Piątek

vbSaturday

7

Sobota

Stała

Value (Wartość)

Opis

vbUseSystem

0

Użyj ustawienia interfejsu API NLS.

vbFirstJan1

1

Rozpocznij od tygodnia, w którym występuje 1 stycznia (domyślnie).

vbFirstFourDays

2

Zacznij od pierwszego tygodnia, który ma co najmniej cztery dni w nowym roku.

vbFirstFullWeek

3

Zacznij od pierwszego pełnego tygodnia roku.

Uwagi

Za pomocą funkcji DateDiff można określić, ile określonych interwałów czasu istnieje między dwiema datami. Za pomocą funkcji DateDiff można na przykład obliczyć liczbę dni między dwiema datami lub liczbę tygodni między dniem dzisiejszym a końcem roku.

Aby obliczyć liczbę dni między datą 1 a datą2, możesz użyć pozycji Dzień roku ("y") lub Dzień ("d"). Gdy interwał ma wartość Dzień tygodnia ("w"), funkcja DateDiff zwraca liczbę tygodni między dwiema datami. Jeśli data1 przypada w poniedziałek, Funkcja DateDiff zlicza liczbę poniedziałków do daty 2. Zlicza datę 2 , ale nie datę1. Jeśli jednak interwał to Tydzień ("ww"), funkcja DateDiff zwraca liczbę tygodni kalendarzowych między dwiema datami. Zlicza ona liczbę niedziel między datą 1 a datą2. DateDiff zlicza datę2 , jeśli wypada w niedzielę; ale nie liczy daty1, nawet jeśli wypada w niedzielę.

Jeśli data1 odwołuje się do punktu późniejszego w czasie niż data2, funkcja DateDiff zwraca liczbę ujemną.

Argument pierwszy_dzień_tygodnia wpływa na obliczenia używające symboli interwałów "w" i "ww".

Jeśli data1 lub data2 jest literał daty, określony rok staje się stałą częścią tej daty. Jeśli jednak data1 lub data2 jest ujęta w podwójny cudzysłów (" "), a rok zostanie pominięty, bieżący rok będzie wstawiany do kodu przy każdej ocenie wyrażenia data1 lub data2 . Umożliwia to pisanie kodu, którego można używać w różnych latach.

Podczas porównywania dat z 31 grudnia do 1 stycznia kolejnego roku funkcja DateDiff for Year ("yyyy") zwraca wartość 1, mimo że upłynęło tylko jeden dzień.

Uwaga:  W przypadku dat 1 i date2, jeśli ustawieniem właściwości Kalendarz jest gregoriański, podanej datą musi być gregoriański. Jeśli kalendarz to Hidżry, podana data musi mieć wartość Hidżry.

Przykłady zapytań DateDiff

Expression

Wyniki

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

Zwraca różnicę między datami Data2 i Data1 (data1 jest najstarsza, a Data2 jako najnowsza) jako liczbę "lat". Wynik: Różnica między wartościami w polu "DateofSale" a datą "2010-01-01" jako liczbą 'Lat'.

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

Zwraca różnicę między datą systemową a wartością "DateofSale" jako liczbę "Kwartałów" (na podstawie roku kalendarzowego) i jest wyświetlana w kolumnie "DaysSinceSale". zwraca różnicę między datą systemową a wartością "DateofSale" jako liczbę miesięcy i jest wyświetlana w kolumnie "DaysSinceSale".

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

Zwraca różnicę między datą systemową a wartością "DateofSale" jako liczbę dni i jest wyświetlana w kolumnie "DaysSinceSale".

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

Zwraca różnicę między datą systemową a wartością "DateofSale" jako liczbę dni i jest wyświetlana w kolumnie "DaysSinceSale".

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

Zwraca różnicę między datą systemową a wartością "DateofSale" jako liczbę dni roboczych i jest wyświetlana w kolumnie "DaysSinceSale". Jeśli wartość "DateofSale" przypada w poniedziałek, funkcja DateDiff zlicza liczbę poniedziałków do daty systemowej. Zlicza ona datę systemową, ale nie wartość w kolumnie "DateofSale".

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

Zwraca różnicę między datą systemową a wartością "DateofSale" jako liczbę tygodni kalendarzowych i wyświetlaną w kolumnie "DaysSinceSale". Zlicza ona liczbę niedziel między datą "DateofSale" i "datą systemową". Będzie ona liczyć datę systemową, jeśli przypada w niedzielę; ale nie liczy się "DateofSale", nawet jeśli wypada w niedzielę.

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

Zwraca różnicę między datą systemową a wartością "DateTime" jako liczbę godzin i wyświetlaną w kolumnie "DaysSinceSale".

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

Zwraca różnicę między datą systemową a wartością "DateTime" jako liczbę minut i wyświetlaną w kolumnie "DaysSinceSale".

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

Zwraca różnicę między datą systemową a wartością "DateTime" jako liczbę sekund i wyświetlaną w kolumnie "DaysSinceSale".

Przykład wyrażenia

Używanie funkcji DateDiff w wyrażeniu     Funkcji DateDiff można używać wszędzie tam, gdzie można używać wyrażeń. Załóżmy na przykład, że masz formularz używany do realizacji zamówień klientów. W tabeli Zamówienia znajduje się pole o nazwie ReceiveBefore zawierające datę otrzymania zamówienia przez klienta. Funkcji DateDiff można użyć z polem tekstowym w formularzu, aby wyświetlić liczbę dni pozostałych przed wysłaniem zamówienia.

Zakładając, że wysłanie dowolnego zamówienia trwa dziesięć dni, właściwość Źródło kontrolki pola tekstowego jest ustawiana w następujący sposób:

=DateDiff("d",Now(), [Zamówienia].[ ReceiveBefore])-10

Po otwarciu formularza w widoku formularza w polu tekstowym jest wyświetlana liczba dni pozostałych przed wysłaniem zamówienia. Jeśli pozostało mniej niż 10 dni przed otrzymaniem zamówienia przez klienta, liczba w polu tekstowym jest ujemna i wskazuje, ile dni później zostanie wysłane zamówienie.

Przykład języka VBA

Używanie funkcji DateDiff w kodzie VBA    

W tym przykładzie użyto funkcji DateDiff w celu wyświetlenia liczby dni między daną datą a dniem dzisiejszym.

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

Zobacz też

Wybieranie odpowiedniej funkcji daty

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.