Datum und Uhrzeit spielen in Datenbankanwendungen eine wichtige Rolle. Ob Du Bestelldaten nach Zeiträumen filtern, das Alter von Datensätzen berechnen oder Geburtstage der nächsten Woche ermitteln willst – Abfragen bieten dafür eine Fülle von eingebauten Funktionen. Dieser Artikel zeigt Dir, welche Zeitfunktionen in Access-Abfragen zur Verfügung stehen und wie Du sie gezielt einsetzt. Außerdem lernst Du die Unterschiede bei der Verwendung von Zeitfunktionen in Abfragen und Formularen/Berichten sowie in VBA kennen.
Beispieldatenbank
Die Beispiele dieses Artikels findest Du in der Datenbank AbfrageBasics_Zeitfunktionen.accdb.
Verfügbare Zeitfunktionen
Access stellt eine Reihe von eingebauten Funktionen bereit, mit denen Du in Abfragen auf Datum- und Uhrzeitwerte zugreifen und damit rechnen kannst.
Nachfolgend findest Du eine Übersicht der wichtigsten Funktionen, die wir in diesem Artikel vorstellen. Die deutsche Bezeichnung steht zuerst, in Klammern folgt die englische VBA-Bezeichnung:
- Datum (Date): Liefert das aktuelle Datum ohne Uhrzeit.
- Jetzt (Now): Liefert das aktuelle Datum inklusive Uhrzeit.
- Jahr (Year): Gibt die Jahreszahl eines Datums zurück.
- Monat (Month): Gibt den Monat eines Datums als Zahl zurück.
- Tag (Day): Gibt den Tag eines Datums als Zahl zurück.
- Wochentag (Weekday): Gibt den Wochentag als Zahl zurück.
- Wochentagsname (WeekdayName): Gibt den Namen des Wochentags zurück.
- Monatsname (MonthName): Gibt den Namen des Monats zurück.
- Stunde (Hour): Gibt die Stunden eines Uhrzeitwerts zurück.
- Minute (Minute): Gibt die Minuten eines Uhrzeitwerts zurück.
- Sekunde (Second): Gibt die Sekunden eines Uhrzeitwerts zurück.
- DatSeriell (DateSerial): Stellt aus Jahr, Monat und Tag ein gültiges Datum zusammen.
- DatTeil (DatePart): Gibt einen bestimmten Teil eines Datums zurück, zum Beispiel die Kalenderwoche.
- DatDiff (DateDiff): Berechnet die Differenz zwischen zwei Datumsangaben in einer bestimmten Einheit.
- DatAdd (DateAdd): Addiert einen Zeitraum zu einem Datum hinzu oder zieht ihn ab.
- IstDatum (IsDate): Prüft, ob ein Ausdruck ein gültiges Datum ist.
Die Beispieltabellen
Für die Beispiele in diesem Artikel verwenden wir zwei Tabellen. Die erste Tabelle heißt tblPersonen und enthält die Felder PersonID, Vorname, Nachname und Geburtstag. Die zweite Tabelle heißt tblBestellungen und enthält die Felder BestellungID, Bestelldatum und Betrag.
Beide Tabellen stehen exemplarisch für typische Szenarien, in denen Zeitfunktionen in Abfragen zum Einsatz kommen: das Ermitteln von Alters- und Zeitraumangaben sowie das Filtern von Datensätzen nach Datum.
Aktuelles Datum und aktuelle Uhrzeit
Die einfachste Zeitfunktion ist Datum(). Sie liefert das aktuelle Datum ohne Uhrzeit und lässt sich direkt als berechnetes Feld in einer Abfrage einsetzen. Das folgende Beispiel fügt einer Abfrage auf Basis von tblBestellungen ein Feld hinzu, das das aktuelle Datum ausgibt:
HeuteDatum: Datum()
Willst Du zusätzlich die aktuelle Uhrzeit erfassen, verwendest Du stattdessen Jetzt():
AktuelleUhrzeit: Jetzt()
Die Funktion Datum() eignet sich besonders gut als Kriterium in Abfragen.
Willst Du zum Beispiel alle Bestellungen des heutigen Tages anzeigen, gibst Du in der Zeile Kriterien des Feldes Bestelldatum folgendes ein:
HeutigesDatum: Datum()
Um alle Bestellungen der letzten 30 Tage zu ermitteln, lautet das Kriterium für das Feld Bestelldatum:
>=Datum()-30
Die ersten Beispiele findest Du in der Abfrage qryAktuellesDatum (siehe Bild 1).
Bild 1: Entwurf der Abfrage mit Zeitfunktionen
In der Datenblattansicht erhalten wir die Daten aus Bild 2.
Bild 2: Datenblattansicht der Abfrage mit Zeitfunktionen
Wichtig: Datum() und Jetzt() müssen in Abfragen, Steuerelementinhalten et cetera immer mit Klammern angegeben werden, da sie sonst als Feldnamen interpretiert werden.
Jahr, Monat und Tag aus einem Datum ermitteln
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
den kompletten Artikel im PDF-Format mit Beispieldatenbank
diesen und alle anderen Artikel mit dem Jahresabo
![Access [basics]](https://access-basics.de/wp-content/uploads/2021/02/logo400.png)

