Datums wijzigen met behulp van functies en operators in Access

Dit artikel is van toepassing op een Microsoft Access-databasebestand (.mdb) of op een Microsoft Access-databasebestand (.accdb) en op een Microsoft Access-projectbestand (.adp).

Gemiddeld: vereist basisvaardigheden voor macro's, codering en interoperabiliteit.

Samenvatting

In dit artikel worden de functies en operators beschreven die beschikbaar zijn in Microsoft Office Access 2007, in Microsoft Office Access 2003 en in Microsoft Access 2002. U kunt de functies en de operators gebruiken om een wijziging aan te brengen in het gegevenstype Datum/tijd met behulp van voorbeeldquery's. De voorbeeldquery's die u kunt gebruiken om de datumwaarden te wijzigen, gebruiken de tabellen in de Northwind.mdb voorbeelddatabase.

Opmerking

De Northwind-voorbeelddatabase voor Access 2007 gebruikt niet dezelfde velden als de eerdere versies van de Northwind-voorbeelddatabase. De tabel Werknemers bevat geen velden HireDate en BirthDate die is opgenomen in de Northwind-voorbeelddatabase voor Access 2007. De naam van het veld EmployeeID is id en het veld FirstName is gewijzigd in Voornaam.

Meer informatie

Access biedt operators en functies om de velden met het gegevenstype Datum/tijd te valideren of te wijzigen. In de volgende voorbeeldquery's worden de datumbewerkingen, de berekeningsfuncties en de vergelijkingsoperatoren gebruikt die beschikbaar zijn in Access.

Microsoft verstrekt programmeervoorbeelden alleen ter illustratie, zonder expliciete of impliciete garantie. daaronder mede begrepen, maar niet beperkt tot impliciete garanties met betrekking tot de verkoopbaarheid en/of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend bent met de programmeertaal VBScript, alsmede met de hulpprogramma's waarmee procedures worden gemaakt en waarmee fouten in procedures worden opgespoord. Ondersteuningsmedewerkers van Microsoft kunnen helpen bij de uitleg over de functionaliteit van een bepaalde procedure. Deze medewerkers zullen de voorbeelden echter niet aanpassen om extra functionaliteit toe te voegen of om procedures te maken die aan uw specifieke eisen voldoen.

De functie Date(), De functie Now() en de functie Format()

SELECT Date(), Now();

De functie Date() retourneert de huidige datum in de korte datumnotatie. De functie Now() retourneert de huidige datum met de tijd.

SELECT Format(Now(), "dd mmmm jjjj");

U kunt de functie Format() met datumwaarden gebruiken om de datumnotatie op te geven die u wilt gebruiken voor de datum. Deze voorbeeldquery retourneert de huidige datum in de lange datumnotatie (01 december 2003).

De functie Day(), de functie WeekDay(), de functie Month() en de functie Year()

SELECT HireDate, Day(HireDate) AS Day,
Weekday(HireDate) AS WeekDay,
Month(HireDate) AS Month, Year(HireDate) AS Year 
FROM Employees;

In de tabel Werknemers retourneert deze query de datum van indiensttreding, de dag van indiensttreding, de dag van de week van indiensttreding, de maand van indiensttreding en het jaar van indiensttreding voor elke werknemer. U ziet dat de functie WeekDay() een numerieke waarde retourneert die de dag van de week aangeeft.

De functie DatePart()

SELECT *  FROM Employees
WHERE DatePart("yyyy", BirthDate) < 1960;

In de tabel Werknemers retourneert deze query alle werknemers die vóór het jaar 1960 zijn geboren. De functie DatePart() kan worden gebruikt om het deel van de opgegeven datum te extraheren, zoals de dag, de maand of het jaar.

De functie DateDiff()

SELECT EmployeeID, FirstName, BirthDate,
DateDiff("yyyy", BirthDate, Date()) AS Age
FROM Employees;

In de tabel Werknemers retourneert deze query de werknemer-id, de voornaam, de geboortedatum en de leeftijd van elke werknemer. De functie DateDiff() retourneert het verschil of de tijdsvertraging tussen de twee opgegeven datumwaarden (in termen van de dag, de maand, het jaar of de tijdseenheden, zoals uren, minuten en seconden).

De functie DateAdd()

SELECT EmployeeID, FirstName, HireDate,
DateAdd("yyyy", 10, HireDate)
FROM Employees;

In de tabel Werknemers retourneert deze query de werknemer-id, de voornaam, de indiensttredingsdatum en de datum waarop de werknemer 10 jaar dienst bij het bedrijf heeft voltooid. Met de functie DateAdd() wordt een datum verhoogd met een opgegeven aantal tijdseenheden, zoals een dag, een maand of een jaar, en wordt vervolgens de resulterende waarde geretourneerd.

U kunt rechtstreeks een numerieke waarde toevoegen aan een datumwaarde. Doe dit om de datumwaarde met een dag te verhogen, zoals in het volgende voorbeeld:

SELECT Date() + 1 ;

Met deze query wordt de huidige datum met één dag verhoogd en wordt vervolgens de resulterende datumwaarde geretourneerd.

De functie DateValue()

SELECT DateValue("20 november 2003") AS ValidDate;

De functie DateValue() controleert of de invoertekenreeks een geldige datum is. Als de invoertekenreeks wordt herkend als een geldige datum, wordt de datum geretourneerd in korte datumnotatie. Als de invoertekenreeks niet wordt herkend als een geldige datum, wordt de instructie 'Gegevenstype komt niet overeen in criteria-expressie' geretourneerd. De functie DateValue() herkent verschillende datumnotaties, zoals mm dd jjjj, dd mm jjjj, dd mm jjjj, dd mmm jjjj en dd mmm jjjj en dd mmm jjjj uu:mm:ss lange datumnotatie.

De functie DateSerial()

SELECT DateSerial( 2003, 03, 1-1);

De functie DateSerial() retourneert de datumwaarde voor de opgegeven invoerparameters jaar, maand en dag. De invoerparameters kunnen expressies zijn die rekenkundige bewerkingen vereisen. De functie DateSerial() evalueert de expressies in de invoerparameters voordat de resulterende datumwaarde wordt geretourneerd.

Deze voorbeeldquery retourneert de laatste dag in de maand februari voor het jaar 2003. De laatste invoerparameter voor de dag met de waarde 1 wordt afgebroken met 1. Het resultaat is dat de maandparameter wordt geëvalueerd op 2.

Vergelijkingsoperatoren met datumwaarden gebruiken

U kunt de volgende vergelijkingsoperatoren gebruiken om datumwaarden in expressies en in query's te vergelijken:

  • < (kleiner dan)
  • > (groter dan)
  • <= (kleiner dan of gelijk aan)
  • >= (groter dan of gelijk aan)
  • <> (niet gelijk aan)
SELECT * FROM Employees
WHERE HireDate >= DateValue(" 10/01/1993")
AND HireDate <= DateValue("12/31/1993");

Deze query gebruikt de >vergelijkingsoperator = en de <vergelijkingsoperator = om te controleren of de aanwervingsdatum van de werknemer binnen het bereik van de twee opgegeven datums valt. Met deze query worden de records opgehaald van alle werknemers die in het laatste kwartaal van het kalenderjaar 1993 zijn aangenomen.

SELECT * FROM Employees
WHERE HireDate <> Date();

Deze query maakt gebruik van de vergelijkingsoperator ongelijkheid om de records op te halen van alle werknemers met een aanwervingsdatum die niet gelijk is aan de huidige datum.

De functie WeekdayName()

SELECT WeekdayName(1, False, 1) AS FirstWeekDayName;

De functie WeekdayName() retourneert een tekenreeks die de dag van de week aangeeft, zoals opgegeven in de eerste parameter. De dag van de weektekenreeks die wordt geretourneerd, is afhankelijk van de derde parameter. Met deze parameter wordt de eerste dag van de week ingesteld. De tweede parameter is ingesteld op Onwaar om op te geven dat de naam van de weekdag niet mag worden ingekort.

Deze voorbeeldquery retourneert de waarde zondag als de eerste dag van de week.

De functie MonthName()

SELECT MonthName(1);

De functie MonthName() retourneert een tekenreeks die de maandnaam aangeeft voor het opgegeven maandnummer van 1 tot en met 12. De invoerparameter kan ook een expressie zijn, zoals in de volgende query:

SELECT MonthName( DatePart("m", Date()) );

Deze query retourneert de naam van de huidige maand.

Verwijzingen

Klik voor meer informatie op de volgende artikelnummers om de artikelen in de Microsoft Knowledge Base weer te geven:

  • 290178 Een query maken met parameters voor het evalueren van complexe criteria in Microsoft Access
  • 290190 Twee functies maken om de leeftijd in maanden en in jaren te berekenen in Microsoft Access