Vrátí hodnotu typu Variant (Long) určující počet časových intervalů mezi dvěma zadanými daty.

Syntaxe

DateDiff ( interval, datum1, datum2 [; první_den_v_týdnu] [; první_týden_v_roce] )

Syntaxe funkce DateDiff má tyto argumenty:

Argument

Popis

interval

Povinný argument. Řetězcový výraz, který je časový interval, který použijete k výpočtu rozdílu mezi date1 a date2.

datum1, datum2

Povinný argument. Varianta (datum). Dvě kalendářní data, která chcete použít ve výpočtu.

První_den_v_týdnu

Nepovinný argument. Konstanta, který určuje první den v týdnu. Pokud není zadáno, předpokládá se neděle.

první týden v roce

Nepovinný argument. Konstanta, která určuje první týden v roce. Pokud není zadán, předpokládá se, že prvním týdnem je týden, ve kterém nastane 1. leden.

Nastavení

IntervalArgument má tato nastavení:

Nastavení

Popis

yyyy

Rok

q

Čtvrtletí

m

Měsíc

y

Den v roce

d

Den

w

Funkce Weekday

ww

Týden

h

Hodina

n

Minuta

s

Sekunda

Argument firstdayofweek má tato nastavení:

Konstanta

Value (Hodnota)

Popis

vbUseSystem

0

Použijte nastavení rozhraní API služby 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žijte nastavení rozhraní API služby NLS.

vbFirstJan1

1

Začněte týdnem, ve kterém nastane 1. leden (výchozí nastavení).

vbFirstFourDays

2

Začněte prvním týdnem, který má v novém roce alespoň čtyři dny.

vbFirstFullWeek

3

Začněte prvním celým týdnem v roce.

Poznámky

Pomocí funkce DateDiff můžete určit, kolik zadaných časových intervalů existuje mezi dvěma daty. Pomocí funkce DateDiff můžete například vypočítat počet dní mezi dvěma daty nebo počet týdnů mezi dnešním dnem a koncem roku.

K výpočtu počtu dnů mezi datem 1 a datem 2 můžete použít den v roce ("y") nebo den ("d"). Pokud je interval weekday ("w"), vrátí Funkce DateDiff počet týdnů mezi dvěma daty. Pokud datum1 spadá na pondělí, funkce DateDiff spočítá počet pondělí až do data2. Počítá datum2, ale ne datum1. Pokud je ale interval Týden ("ww"), vrátí funkce DateDiff počet kalendářních týdnů mezi těmito dvěma daty. Spočítá počet nedělí mezi datem 1 a datem 2. DateDiff počítá datum2 , pokud spadá na neděli; ale nepočítá datum1, i když spadá na neděli.

Pokud datum1 odkazuje na pozdější bod v čase než datum2, vrátí funkce DateDiff záporné číslo.

Argument firstdayofweek ovlivňuje výpočty, které používají symboly intervalu "w" a "ww".

Pokud je date1 nebo date2Literál typu datum, stane se zadaný rok trvalou součástí tohoto data. Pokud je však datum1 nebo datum2 uzavřeno v uvozovkách (" ") a vynecháte rok, aktuální rok se vloží do kódu při každém vyhodnocení výrazu date1 nebo date2 . To umožňuje napsat kód, který se dá použít v různých letech.

Při porovnání 31. prosince s 1. lednem bezprostředně následujícího roku vrátí Funkce DateDiff pro rok ("yyyy") hodnotu 1, i když uplynul pouze jeden den.

Poznámka:  Pro datum1 a datum2 platí, že pokud je nastavení vlastnosti Kalendář gregoriánské, musí být zadané datum gregoriánské. Pokud je kalendář Hidžra, musí být zadané datum Hidžra.

Příklady dotazů DateDiff

Výraz

Výsledky

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

Vrátí rozdíl mezi datem 2 a datem 1 (datum1 považujete za nejstarší a datum2 za nejnovější) jako počet roků. Výsledek: Rozdíl mezi hodnotami v poli DateofSale a datem "01/01/2010" jako počtem 'Years'.

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

Vrátí rozdíl mezi systémovým datem a DateofSale jako počtem čtvrtletí (na základě kalendářního roku) a zobrazí se ve sloupci DaysSinceSale. vrátí rozdíl mezi systémovým datem a DateofSale jako počet měsíců a zobrazí se ve sloupci DaysSinceSale.

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

Vrátí rozdíl mezi systémovým datem a DateofSale jako počet dnů a zobrazí se ve sloupci DaysSinceSale.

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

Vrátí rozdíl mezi systémovým datem a DateofSale jako počet dnů a zobrazí se ve sloupci DaysSinceSale.

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

Vrátí rozdíl mezi systémovým datem a DateofSale jako počet dnů v týdnu a zobrazí se ve sloupci DaysSinceSale. Pokud dateofSale spadá na pondělí, dateDiff spočítá počet pondělí až do data systému. Počítá systémové datum, ale ne hodnotu v dateofSale.

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

Vrátí rozdíl mezi systémovým datem a datem "DateofSale" jako číslem "Týdny kalendáře" a zobrazí se ve sloupci "DaysSinceSale". Počítá počet nedělí mezi "DateofSale" a "systémovým datem". Bude počítat systémové datum, pokud spadá na neděli; ale nepočítá "DateofSale", i když spadá na neděli.

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

Vrátí rozdíl mezi systémovým datem a DateTime jako počet hodin a zobrazí se ve sloupci DaysSinceSale.

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

Vrátí rozdíl mezi systémovým datem a datem a časem jako počtem minut a zobrazí se ve sloupci DaysSinceSale.

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

Vrátí rozdíl mezi systémovým datem a DateTime jako počet sekund a zobrazí se ve sloupci DaysSinceSale.

Vzorový výraz

Použití funkce DateDiff ve výrazu     Funkci DateDiff můžete použít všude tam, kde můžete použít 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 Orders máte pole s názvem ReceiveBefore, které obsahuje datum, do kterého zákazník potřebuje objednávku obdržet. Pomocí funkce DateDiff s textovým polem ve formuláři můžete zobrazit zbývající počet dní před odesláním objednávky.

Za předpokladu, že odeslání jakékoli objednávky trvá deset dní, nastavíte vlastnost Zdroj ovládacího prvku textového pole následujícím způsobem:

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

Když formulář otevřete ve formulářovém zobrazení, zobrazí se v textovém poli počet dnů, které zbývá do odeslání objednávky. Pokud zákazníkovi zbývá méně než 10 dní, než bude muset objednávku obdržet, je číslo v textovém poli záporné a udává, o kolik dní bude objednávka zpožděna, pokud bude odeslána okamžitě.

Příklad jazyka VBA

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

Tento příklad používá funkci DateDiff k zobrazení počtu dnů mezi daným datem a dneškem.

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

Viz také

Volba správné datové funkce

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.