Funkce DateDiff

Platí pro
Access pro Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Vrátí hodnotu typu Variant (Long), která určuje počet časových intervalů mezi dvěma daty.

Syntaxe

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

Funkce DateDiff má tyto argumenty:

Argument Popis
interval Povinný argument. Řetězcový výraz představující časový interval použitý k výpočtu rozdílu mezi date1 a date2.
date1, date2 Povinný argument. Variant (datum). Dvě data, která chcete použít při výpočtu.
firstdayofweek Nepovinný argument. Konstanta, která určuje první den v týdnu. Pokud ji nezadáte, předpokládá se, že je to neděle.
firstweekofyear Nepovinný argument. Konstanta, která určuje první týden v roce. Pokud ho nezadáte, považuje se za první týden týden, do kterého spadá datum 1. ledna.

Nastavení

Argument interval má následující nastavení:

Nastavení Popis
yyyy Rok
q Čtvrtletí
m Měsíc
y Den roku
d Den
w Funkce Weekday
ww Týden
h Hodina
n Minuta
s Sekunda

Argument firstdayofweek má následující nastavení:

Konstanta Value (Hodnota) Popis
vbUseSystem 0 Používá nastavení rozhraní API NLS.
vbSunday 1 Neděle (výchozí)
vbMonday 2 Pondělí
vbTuesday 3 Úterý
vbWednesday 4 Středa
vbThursday 5 Čtvrtek
vbFriday 6 Pátek
vbSaturday 7 Sobota
Konstanta Value (Hodnota) Popis
vbUseSystem 0 Používá nastavení rozhraní API NLS.
vbFirstJan1 1 Začíná týdnem, ve kterém je 1. leden (výchozí).
vbFirstFourDays 2 Začíná prvním týdnem, který má v novém roce alespoň čtyři dny.
vbFirstFullWeek 3 Začíná prvním celým týdnem roku.

Poznámky

Pomocí této DateDiff funkce můžete určit, kolik zadaných časových intervalů je mezi dvěma daty. Můžete ho třeba použít DateDiff k výpočtu počtu dní mezi dvěma kalendářními daty nebo počtu týdnů mezi dneškem a koncem roku.

K výpočtu počtu dní mezi date1 a date2, můžete použít buď Den v roce ("y") nebo Den ("d"). Argument interval Den v týdnu ("w"), DateDiff vrátí počet týdnů mezi dvěma daty. Pokud date1 připadne na pondělí, DateDiff vrátí počet pondělků do date2. Počítá date2 se, ale ne date1. Pokud interval je to Týden ("ww"), DateDiff vrátí funkce počet kalendářních týdnů mezi dvěma daty. Počítá počet nedělí mezi date1 a date2. DateDiff date2 počítá, pokud připadne na neděli, ale nepočítá date1se, i když připadne na neděli.

Pokud date1 odkazuje na pozdější časový bod než date2, DateDiff vrátí funkce záporné číslo.

Tento firstdayofweek argument má vliv na výpočty, které používají symboly intervalu "w" a "ww"

date2 Pokud date1 se jedná o datum doslovně, stane se zadaný rok trvalou součástí daného data. Pokud date1 je však řetězec nebo date2 uzavřen v uvozovkách (" ") a vynecháte rok, bude při každém vyhodnocení výrazu date1 or date2 vložen do kódu aktuální rok. Díky tomu můžete psát kód, který můžete použít v různých letech.

Když porovnáte 31. prosinec s 1. lednem následujícího roku, DateDiff pro rok ("yyyy") vrátí 1, i když uplynul jenom jeden den.

Poznámka

For date1 a date2, pokud je nastavení vlastnosti gregoriánské Calendar , musí být zadané datum gregoriánského. Pokud je kalendář hidžra, zadané datum musí být hidžra.

DateDiff Příklady dotazů

Výraz Výsledky:
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; Vrátí rozdíl mezi datem 01/01/2010 a hodnotami v DateofSale poli vyjádřený v letech.
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Vrátí rozdíl mezi systémovým datem a DateofSaleznakem , vyjádřený čtvrtletími podle kalendářního roku a zobrazí jej ve sloupci DaysSinceSale .
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Vrátí rozdíl mezi systémovým datem a DateofSaleznakem ve dnech a zobrazí ho ve sloupci DaysSinceSale .
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Vrátí rozdíl mezi systémovým datem a DateofSaleznakem ve dnech a zobrazí ho ve sloupci DaysSinceSale .
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Vrátí rozdíl mezi systémovým datem a DateofSaletabulkou v pracovních dnech a zobrazí ho ve sloupci DaysSinceSale . Pokud DateofSale připadne na pondělí, DateDiff vrátí počet pondělků do systémového data. Počítá systémové datum, ale ne DateofSale hodnotu.
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Vrátí rozdíl mezi systémovým datem a DateofSaleznakem v kalendářních týdnech a zobrazí ho ve sloupci DaysSinceSale . Počítá počet nedělí mezi DateofSale a systémovým datem. Počítá systémové datum, pokud připadne na neděli, ale nepočítá DateofSale, i když připadne na neděli.
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Vrátí rozdíl mezi systémovým datem a DateTimeznakem v hodinách a zobrazí ho ve sloupci DaysSinceSale .
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Vrátí rozdíl v minutách mezi systémovým datem a datem a DateTimezobrazí ho ve sloupci DaysSinceSale .
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Vrátí rozdíl mezi systémovým datem a DateTimeznakem v sekundách a zobrazí ho ve sloupci DaysSinceSale .

Použití funkce DateDiff ve výrazu

Tuto DateDiff funkci můžete použít všude, kde se dají používat výrazy. Předpokládejme například, že máte formulář, který používáte k plnění objednávek zákazníků. V tabulce Objednávky máte pole s názvem ReceiveBefore , které obsahuje datum, do kterého musí zákazník objednávku přijmout. Tuto funkci můžete použít DateDiff s textovým polem ve formuláři k zobrazení počtu dní, které zbývají do odeslání objednávky.

Za předpokladu, že odeslání objednávky trvá deset dní, nastavte vlastnost Zdroj ovládacího prvku textového pole takto:

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

Po otevření formuláře ve formulářovém zobrazení se v textovém poli zobrazí počet dní, které zbývají do odeslání objednávky. Pokud do přijetí objednávky zákazníkovi zbývá méně než 10 dní, je číslo v textovém poli záporné. Je tam uvedeno, o kolik dní se objednávka zpozdí, pokud ji hned odešlete.

Použití funkce DateDiff v kódu jazyka VBA

V tomto příkladu se funkce DateDiff používá k zobrazení počtu dní mezi daným datem a dneškem.

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

Viz také

Volba správné datové funkce