Applies ToAccess 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 [, viikonensimmäinenpäivä] [, vuodenensimmäinenviikko] )

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ä, oletusasetus 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

Aikaväli argumentti-argumentin asetukset ovat seuraavat:

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 päivämäärä1 viittaa päivämäärä2-argumenttiin määritettyä päivämäärää myöhempään ajankohtaan, DateDiff-funktio palauttaa negatiivisen luvun.

Viikonensimmäinenpäivä -argumentti vaikuttaa laskutoimituksissa, joissa käytetään aikavälejä tarkoittavia w- ja ww-symboleja.

Jos päivämäärä1 tai päivämäärä2 on päivämääräliteraali, määritetty vuosi liitetään pysyvästi päivämäärään. Jos päivämäärä1 tai päivämäärä2 kirjoitetaan kuitenkin lainausmerkkeihin (" ") ja vuosi jätetään pois, kuluva vuosi lisätään koodiin aina, kun päivämäärä1- tai päivämäärä2-lauseke lasketaan. 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 kalenterin ominaisuusasetus on Gregoriaaninen, päivämäärä1- ja päivämäärä2-argumenttien päivämäärä täytyy antaa gregoriaanisen kalenterin mukaisena. 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.

Esimerkkilauseke

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].[VastaanottoEnnen])-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.

VBA-esimerkki

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 MsgTheDate = InputBox("Enter a date")Msg = "Days from today: " & DateDiff("d", Now, TheDate)MsgBox Msg

Katso myös

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

Tarvitsetko lisäohjeita?

Haluatko lisää vaihtoehtoja?

Tutustu tilausetuihin, selaa harjoituskursseja, opi suojaamaan laitteesi ja paljon muuta.

Osallistumalla yhteisöihin voit kysyä kysymyksiä ja vastata niihin, antaa palautetta sekä kuulla lisää asiantuntijoilta, joilla on runsaasti tietoa.