Funkcia DateDiff

Vzťahuje sa na
Access pre Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Vráti hodnotu typu Variant (Long), ktorá určuje počet časových intervalov medzi dvomi dátumami.

Syntax

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

Funkcia DateDiff má tieto argumenty:

Argument Popis
interval Povinný argument. Reťazcový výraz, ktorý vyjadruje časový interval, ktorý sa používa na výpočet rozdielu medzi date1 a date2.
date1, date2 Povinný argument. Variant (Date). Dva dátumy, ktoré chcete použiť vo výpočte.
firstdayofweek Voliteľný argument. Konštanta, ktorá určuje prvý deň týždňa. Ak ho nezadáte, predpokladá sa, že je to nedeľa.
firstweekofyear Voliteľný argument. Konštanta, ktorá určuje prvý týždeň roka. Ak ho nezadáte, prvý týždeň spadá do týždňa, do ktorého spadá 1. január.

Nastavenia

Argument interval má tieto nastavenia:

Nastavenie Popis
yyyy Rok
q Štvrťrok
m Mesiac
y Deň v roku
d Deň
w Weekday
ww Týždeň
h Hodina
n Minúta
s Sekunda

Argument firstdayofweek má tieto nastavenia:

Konštanta Hodnota Popis
vbUseSystem 0 Používa nastavenie NLS API.
vbSunday 1 Nedeľa (predvolené)
vbMonday 2 Pondelok
vbTuesday 3 Utorok
vbWednesday 4 Streda
vbThursday 5 Štvrtok
vbFriday 6 Piatok
vbSaturday 7 Sobota
Konštanta Hodnota Popis
vbUseSystem 0 Používa nastavenie NLS API.
vbFirstJan1 1 Začína sa týždňom, do ktorého spadá 1. január (predvolená možnosť).
vbFirstFourDays 2 Začína sa prvým týždňom, v ktorom sa nachádzajú aspoň štyri dni nového roka.
vbFirstFullWeek 3 Začína sa prvým celým týždňom v roku.

Poznámky:

Funkciu DateDiff môžete použiť na určenie, koľko zadaných časových intervalov existuje medzi dvomi dátumami. Môžete ich DateDiff použiť napríklad na výpočet počtu dní medzi dvomi dátumami alebo počtu týždňov medzi dnešným dňom a koncom roka.

Na výpočet počtu dní medzi znakmi date1 a date2môžete použiť buď Deň v roku ("y") alebo Deň ("d"). When is interval Weekday ("w"), DateDiff vráti počet týždňov medzi dvomi dátumami. Ak date1 pripadá na pondelok, DateDiff spočíta počet pondelkov do date2. Počíta date2 sa, ale nie date1. Ak interval je to však hodnota Týždeň ("ww"), funkcia vráti DateDiff počet kalendárnych týždňov medzi dvomi dátumami. Počíta počet nedieľ medzi date1 a date2. DateDiff Počíta date2 sa, ak pripadá na nedeľu, ale nepočíta date1sa, aj keď pripadá na nedeľu.

Ak date1 funkcia odkazuje na neskorší časový bod date2, vráti DateDiff záporné číslo.

Argument firstdayofweek ovplyvňuje výpočty, ktoré používajú "w" intervalové symboly and "ww" .

Ak date1 je dátumový literál alebo date2 ním je, zadaný rok sa stane trvalou súčasťou daného dátumu. Ak je však date1 znak OR date2 uzavretý dvojitými úvodzovkami (" ") a vynecháte rok, pri každom vyhodnocovaní výrazu date1 OR date2 sa do vášho kódu vloží aktuálny rok. Takto je možné písať kód, ktorý budete môcť používať v rôznych rokoch.

Pri porovnaní 31. decembra a 1. januára nasledujúceho roka vráti položka Year ("yyyy") hodnotu 1 napriek tomu, DateDiff že uplynul iba jeden deň.

Poznámka

Pre date1 a date2, ak je vlastnosť nastavená Calendar na možnosť Gregoriánsky, zadaný dátum musí byť podľa gregoriánskeho kalendára. Ak ide o kalendár Hedžra, zadaný dátum musí byť podľa kalendára Hedžra.

Príklady dotazov DateDiff

Výraz Výsledky
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; Vráti rozdiel v rokoch medzi dátumom 01/01/2010 a hodnotami v poli.DateofSale
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Vráti rozdiel medzi systémovým dátumom a DateofSalesymbolom , vyjadrený v štvrťrokoch na základe kalendárneho roka, a zobrazí ho v DaysSinceSale stĺpci.
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Vráti rozdiel medzi systémovým dátumom a DateofSale, v dňoch a zobrazí ho v DaysSinceSale stĺpci.
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Vráti rozdiel medzi systémovým dátumom a DateofSale, v dňoch a zobrazí ho v DaysSinceSale stĺpci.
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Vráti rozdiel medzi systémovým dátumom a DateofSalesymbolom , vyjadrený v pracovných dňoch, a zobrazí ho v DaysSinceSale stĺpci. Ak DateofSale pripadne na pondelok, DateDiff spočíta počet pondelkov po systémový dátum. Počíta systémové dátumy, nie však DateofSale hodnotu.
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Vráti rozdiel medzi systémovým dátumom a DateofSale, vyjadrený v kalendárnych týždňoch, a zobrazí ho v stĺpci DaysSinceSale . Spočíta počet nedieľ medzi systémovým DateofSale dátumom a systémovým dátumom. Systémový dátum sa spočíta, ak pripadne na nedeľu, ale nepočíta DateofSalesa, aj keď pripadne na nedeľu.
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Vráti rozdiel v hodinách medzi systémovým dátumom a DateTimesymbolom , a zobrazí ho v DaysSinceSale stĺpci.
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Vráti rozdiel medzi systémovým dátumom a DateTimesymbolom , v minútach, a zobrazí ho v DaysSinceSale stĺpci.
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Vráti rozdiel medzi systémovým dátumom a DateTimesymbolom , v sekundách a zobrazí ho v stĺpci.DaysSinceSale

Použitie funkcie DateDiff vo výraze

Funkciu DateDiff môžete použiť všade, kde môžete použiť výrazy. Povedzme napríklad, že máte formulár, ktorý používate na vybavenie objednávok zákazníkov. V tabuľke Objednávky máte pomenované ReceiveBefore pole, ktoré obsahuje dátum, ku ktorému zákazník potrebuje objednávku prijať. Funkciu DateDiff môžete použiť s textovým poľom vo formulári na zobrazenie počtu zostávajúcich dní, dokedy je objednávku potrebné odoslať.

Za predpokladu, že odoslanie ľubovoľnej objednávky trvá desať dní, nastavte vlastnosť Zdroj ovládacieho prvku pre textové pole takto:

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

Keď otvoríte formulár v zobrazení formulára, textové pole zobrazí počet zostávajúcich dní, dokedy je objednávku potrebné odoslať. Ak zostáva menej ako 10 dní do dňa, kedy zákazník potrebuje objednávku prijať, číslo v textovom poli je záporné. Udáva, o koľko dní oneskoríte doručenie objednávky, ak ju odošlete okamžite.

Použitie funkcie DateDiff v kóde VBA

V tomto príklade je funkcia použitá DateDiff na zobrazenie počtu dní medzi daným dátumom a dnešným dňom.

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

Pozrite tiež

Výber správnej funkcie dátumu