DateDiff-funktio

Käytetään kohteeseen
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Palauttaa variantin (Long), joka määrittää kahden määritetyn päivämäärän välisten aikavälien määrän.

Syntaksi

DateDiff (aikaväli, päivämäärä1, päivämäärä2 [, viikon ensimmäinen päivä] [, viikon ensimmäinen viikko] )

DateDiff-funktion syntaksilla on seuraavat argumentit:

Argumentti Kuvaus
aikaväli Pakollinen. Merkkijonolauseke, joka on päivämäärä1 :n ja päivämäärä2:n välisen eron laskemiseen käytettävä aikaväli.
päivämäärä1, päivämäärä2 Pakollinen. Muuttuja (päivämäärä). Laskutoimituksessa käytettävät kaksi päivämäärää.
viikonensimmäinenpäivä Valinnainen. Vakio, joka määrittää viikon ensimmäisen päivän. Jos tätä argumenttia ei määritetä, laskutoimituksessa käytetään oletusasetusta, joka on sunnuntai.
vuodenensimmäinenviikko Valinnainen. Vakio, joka määrittää vuoden ensimmäisen viikon. Jos tätä ei määritetä, ensimmäisen viikon oletetaan olevan viikko, jolloin tammikuun 1. päivä tapahtuu.

Asetukset

Väliargumentilla on seuraavat asetukset:

Asetus Kuvaus
yyyy Vuosi
q Vuosineljännes
m Kuukausi
y Vuoden päivä
d Päivä
w Viikonpäivä
ww Viikko
h Tunti
n Minuutti
s Sekunti

Viikonensimmäinenpäivä -argumentilla on seuraavat asetukset:

Vakio Arvo Kuvaus
vbUseSystem 0 Käytä NLS API -asetusta.
vbSunday 1 Sunnuntai (oletus)
vbMonday 2 Maanantai
vbTuesday 3 Tiistai
vbWednesday 4 Keskiviikko
vbThursday 5 Torstai
vbFriday 6 Perjantai
vbSaturday 7 Lauantai
Vakio Arvo Kuvaus
vbUseSystem 0 Käytä NLS API -asetusta.
vbFirstJan1 1 Aloita viikosta, jossa on 1. tammikuuta (oletus).
vbFirstFourDays 2 Aloita ensimmäisestä viikosta, jossa on vähintään neljä uuden vuoden päivää.
vbFirstFullWeek 3 Aloita vuoden ensimmäisestä täydestä viikosta.

Huomautuksia

DateDiff-funktiolla voit selvittää, kuinka monta määritettyä aikaväliä on kahden päivämäärän välissä. Voit laskea DateDiff-funktiolla esimerkiksi päivämäärien välisten päivien määrän tai viikkojen määrän kuluvasta päivämäärästä vuoden loppuun.

Jos haluat laskea päivämäärän1 ja päivämäärä2 välisten päivien määrän, voit käyttää joko Vuoden päivä ("y") tai Päivää ("d"). Kun aikaväli on Viikonpäivä ("w"), DateDiff palauttaa kahden päivämäärän välisten viikkojen määrän. Jos päivämäärä1 on maanantai, DateDiff laskee maanantaiden määrän päivämäärään2 asti. Se laskee päivämäärän2 , mutta ei päivämäärää1. Jos aikaväli on Viikko ("ww"), DateDiff-funktio palauttaa kuitenkin kahden päivämäärän välisten kalenteriviikkojen määrän. Se laskee päivämäärän1 ja päivämäärä2 välisten sunnuntaiten määrän. DateDiff laskee päivämäärän2 , jos se on sunnuntai; mutta se ei laske päivämäärää1, vaikka se olisi sunnuntai.

Jos date1 viittaa päivämäärä2:a myöhempään ajankohtaan, DateDiff-funktio palauttaa negatiivisen luvun.

Viikonensimmäinenpäivä-argumentti vaikuttaa laskutoimituksiin, joissa käytetään w- ja ww-aikavälisymboleja.

Jos päivämäärä1 tai päivämäärä2 on päivämääräliteraali, määritetystä vuodesta tulee pysyvä osa kyseistä päivämäärää. Jos päivämäärä1 tai päivämäärä2 on lainausmerkeissä (" ") ja jätät vuoden pois, kuluva vuosi lisätään koodiin aina, kun päivämäärä1 - tai päivämäärä2-lauseke arvioidaan. Näin voidaan kirjoittaa koodia, joka on käyttökelpoista eri vuosina.

Kun päivämäärää 31.12. verrataan seuraavan vuoden päivämäärään 1.1., DateDiff-funktion vuosiasetus (yyyy) palauttaa luvun 1 huolimatta siitä, että vain yksi päivä on kulunut.

Huomautus

Jos päivämäärä1 ja päivämäärä2Calendar ominaisuusasetus on gregoriaaninen, annettu päivämäärä on gregoriaaninen. Islamilaista kalenteria käytettäessä päivämäärä täytyy antaa islamilaisen kalenterin mukaisena.

Esimerkkejä DateDiff-kyselystä

Lauseke Tulokset
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; Palauttaa Päivämäärä2:n ja Päivämäärä1:n välisen eron (päivämäärä1 vanhimpana ja Päivämäärä2 uusimpana) vuosilukuna. Tulos: DateofSale-kentän arvojen ja päivämäärän "01/01/2010" arvojen välinen ero muodossa "Years".
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Palauttaa järjestelmän päivämäärän ja DateofSale-funktion välisen eron vuosineljännesten määränä (kalenterivuoden perusteella) ja näyttää sarakkeen "DaysSinceSale". palauttaa järjestelmän päivämäärän ja DateofSale-funktion välisen eron kuukausien määränä ja näyttää sarakkeessa "DaysSinceSale".
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Palauttaa järjestelmän päivämäärän ja DateofSale-funktion välisen eron päivien määränä, ja se näkyy DaysSinceSale-sarakkeessa.
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Palauttaa järjestelmän päivämäärän ja DateofSale-funktion välisen eron päivien määränä, ja se näkyy DaysSinceSale-sarakkeessa.
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Palauttaa järjestelmän päivämäärän ja DateofSale-funktion välisen eron viikonpäivien määränä, ja se näkyy DaysSinceSale-sarakkeessa. Jos DateofSale on maanantaina, DateDiff laskee maanantaisen määrän järjestelmän päivämäärään asti. Se laskee järjestelmän päivämäärän, mutta ei dateofsale-arvoa.
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Palauttaa järjestelmän päivämäärän ja DateofSale-funktion välisen eron calender-viikkojen määränä, ja se näkyy DaysSinceSale-sarakkeessa. Se laskee sunnuntain määrän päivämäärän "DateofSale" ja "järjestelmän päivämäärä" välillä. Se laskee järjestelmän päivämäärän, jos se on sunnuntai; mutta sitä ei lasketa "DateofSale", vaikka se olisi sunnuntai.
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Palauttaa järjestelmän päivämäärän ja DateTime-funktion välisen eron tuntimääränä, ja se näkyy DaysSinceSale-sarakkeessa.
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Palauttaa järjestelmän päivämäärän ja DateTime-päivämäärän välisen eron minuuttimääränä, ja se näkyy DaysSinceSale-sarakkeessa.
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Palauttaa järjestelmän päivämäärän ja DateTime-funktion välisen eron sekunteina ja näkyy DaysSinceSale-sarakkeessa.

DateDiff-funktion käyttäminen lausekkeessa

Voit käyttää DateDiff-funktiota aina, kun voit käyttää lausekkeita. Oletetaan, että sinulla on lomake, johon täytät asiakkaiden tilauksia. Tilaukset-taulukossa on VastaanottoEnnen-niminen kenttä, joka sisältää päivämäärän, johon mennessä asiakkaan on saatava tilaus. Lomakkeen tekstiruudussa olevan DateDiff-funktion avulla voit näyttää, kuinka monta päivää on jäljellä ennen kuin tilaus on toimitettava.

Jos oletetaan, että tilauksen toimitukseen menee kymmenen päivää, määrität tekstiruudun Ohjausobjektin lähde -ominaisuuden seuraavasti:

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

Kun avaat lomakkeen lomakenäkymään, tekstiruudussa näkyy, kuinka monta päivää tilauksen lähetyspäivään on. Jos päiviä on jäljellä alle 10 ennen kuin asiakkaan on vastaanotettava tilaus, tekstiruudun luku on negatiivinen ja se ilmaisee, montako päivää tilaus on myöhässä, jos se toimitetaan heti.

DateDiff-funktion käyttäminen VBA-koodissa

Tässä esimerkissä annetun päivämäärän ja kuluvan päivämäärän välisten päivien määrä lasketaan DateDiff-funktiolla.


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

Katso myös

Oikean päivämääräfunktion valinta