Der Datentyp "Datum/Uhrzeit erweitert" speichert Datums- und Uhrzeitinformationen und ähnelt dem Datentyp "Datum/Uhrzeit", bietet jedoch einen größeren Datumsbereich, eine höhere Genauigkeit bei Teilwerten sowie Kompatibilität mit dem SQL Server-Datentyp "datetime2". Wenn Sie Access-Daten in SQL Server importieren oder damit verknüpfen, können Sie einer SQL Server datetime2-Spalte ein Access-Feld vom Typ "Datum/Uhrzeit erweitert" einheitlich zuordnen. Weitere Informationen finden Sie unter datetime2 (Transact-SQL).For more information, see datetime2 (Transact-SQL).
Warnung Wenn Sie Ausdrücke erstellen und Datums-/Uhrzeitfunktionen basierend auf dem Datentyp Date/Time Extended in Access verwenden, verlieren Sie möglicherweise an Genauigkeit bei Berechnungen oder treten andere Probleme mit den Ergebnissen auf. Dieses Problem ist uns bekannt, und wir sind bestrebt, in einer zukünftigen Version Ausdrücke und Funktionen besser zu unterstützen. Zur Problemumgehung können Sie eine Pass-Through-Abfrage erstellen, um die entsprechenden SQL Server-Ausdrucks- und Datums-und Uhrzeitfunktionen zu verwenden. Weitere Informationen finden Sie unter Vergleich von Access SQL und SQL Server TSQL.
Inhalt dieses Artikels
Vergleich der Datentypen "Datum/Uhrzeit" und "Datum/Uhrzeit erweitert"
In den folgenden Tabellen sind wichtige Unterschiede zwischen den beiden Datentypen zusammengefasst.
| Attribut | Datum/Uhrzeit | Datum/Uhrzeit erweitert |
|---|---|---|
| Minimalwert | 100-01-01 00:00:00 | 0001-01-01 00:00:00 |
| Maximalwert | 9999-12-31 23:59:59.999 | 9999-12-31 23:59:59.9999999 |
| Genauigkeit | 0,001 Sekunden | 1 Nanosekunde |
| Größe | Gleitkommawert doppelter Genauigkeit | Codierte Zeichenfolge aus 42 Bytes |
Verwendung des Datentyps "Datum/Uhrzeit erweitert"
Die folgenden Informationen umfassen wichtige Überlegungen bei der Verwendung.
Tabellenentwurfsansicht Um den größeren Datenbereich und die höhere Genauigkeit zu nutzen, können Sie einer Access-Tabelle ein Feld hinzufügen. Sie können auch einen Datentyp "Datum/Uhrzeit" in "Datum/Uhrzeit erweitert" in der Tabellenentwurfsansicht konvertieren. Die Verwendung dieses Datentyps als Primärschlüsselfeld wird ebenfalls unterstützt. Weitere Informationen finden Sie unter Erstellen einer Tabelle und Hinzufügen von Feldern.
Eingeben von Datum und Uhrzeit Die Eingabe von Datums- und Uhrzeitwerten ähnelt dem Datentyp Datum/Uhrzeit, mit der Ausnahme, dass Sie auch eine Bruchteil-Nanosekunde eingeben können. Beispiel:
- Eingabeformat: tt/mm/jjjj hh:mm:ss.nnnnnnn
- Beispiel: 15/06/1215 09:25:03.234
Bei mehr als sieben Dezimalstellen werden diese auf sieben gerundet. Um die Anzeige der Bruchteile von Nanosekunden zu steuern, öffnen Sie die Tabelle, wählen Sie im Menüband Felder aus, und wählen Sie in der Gruppe Formatierung die Option Bild Der Dezimalstellenschaltfläche erhöhen
oder Bild der Dezimalstellenschaltfläche verkleinern
aus.
Formatierung Sowohl die Datentypen Date/Time und Date/Time Extended verwenden ähnliche Standardformatzeichenfolgen wie "Allgemeines Datum", " Langes Datum", " Mittleres Datum", " Kurzes Datum", " Lange Zeit", " Mittelzeit" und " Kurze Zeit ", und beide unterstützen benutzerdefinierte Formatierungen. Bei dem Datentyp "Datum/Uhrzeit erweitert" unterstützen die zeitbasierten Standardformate auch eine Angabe in Sekundenbruchteilen. Die Formatierung des Datentyps "Datum/Uhrzeit erweitert" ist standardmäßig auf allgemeines Datumsformat und langes Zeitformat festgelegt und spiegelt die in den regionalen Windows-Einstellungen festgelegten Optionen wieder. Sie können die Dezimalstellen-Genauigkeit steuern, indem Sie über die Dezimalstellen-Eigenschaft angeben, wie viele Dezimalstellen nach dem Dezimalkomma angezeigt werden sollen (1-7).
Verknüpfen und Importieren Sie können auch eine Verknüpfung mit Datenbanken mit einem entsprechenden Datentyp herstellen oder daraus importieren, z. B. den SQL Server datetime2-Datentyp. Es werden SQL Server, Version 2014 oder höher unterstützt. Für den Datentyp "Datum/Uhrzeit erweitert" ist die Verwendung von Microsoft ODBC-Treiber für SQL Server 11 oder höher erforderlich. Es wird empfohlen, microsoft ODBC Driver 13.1 für SQL Server zu verwenden. Die Verwendung von OLE DB wird ebenfalls unterstützt. Weitere Informationen finden Sie unter Datentypunterstützung für ODBC-Datums- und Uhrzeitverbesserungen und Verwenden von erweiterten Datums- und Uhrzeitfeatures (OLE DB).For more information, see Data Type Support for ODBC Date and Time Improvements and Use Enhanced Date and Time Features (OLE DB).
Formulare und Berichte Sie können den Datentyp Date/Time Extended zu einem Formular oder Bericht hinzufügen. In einem Formular können Sie die Datumsauswahl und die Eingabemaske verwenden, um ein Datum mit dem größeren Datumsbereich einzugeben, nicht jedoch mit der Genauigkeit von Sekundenbruchteilen.
Ausdrucksunterstützung Der Date/Time Extended-Datentyp unterstützt SQL-Aggregatfunktionen und die Auswertung von Ausdrücken. Z. B. die Verwendung von LoggedDateTime als ein Feld mit dem Datentyp "Datum/Uhrzeit erweitert":
| Aufgabe | Beispiel | Ergebnis |
|---|---|---|
| Ermitteln des Minimalwerts | Min(LoggedDateTime) | Das früheste Datum und die früheste Uhrzeit innerhalb des Bereiches |
| Extrahieren des Monats | Month(LoggedDateTime) | Der Monatsname, z. B. "Januar" |
| Hinzufügen eines Tages | [LoggedDateTime]+1 | Dienstag würde zu Mittwoch |
Überlegungen zur Abwärtskompatibilität
Der Datentyp "Datum/Uhrzeit erweitert" ist mit früheren Versionen von Microsoft Access nicht kompatibel. Wenn der Typ in einer lokalen Access-Tabelle verwendet wird, können Versionen von Access, die das Feature nicht enthalten, die Datenbank nicht öffnen.
Sie können den Datentyp Datum/Uhrzeit erweitert für verknüpfungs- und importvorgänge mit der Option Current Database Access Support Date/Time Extended Data Type for Linked/Lmported Tables (Datum/Uhrzeit erweiterter Datentyp für verknüpfte/lmportierte Tabellen) aktivieren oder deaktivieren. Weitere Informationen finden Sie unter Festlegen von Benutzeroptionen für die aktuelle Datenbank.
Verwenden des Datentyps "Datum/Uhrzeit erweitert" als Zeichenfolge in VBA
In den folgenden VBA-Beispielen werden DAO-Methoden verwendet, um den Datentyp "Datum/Uhrzeit erweitert" basierend auf der nachstehenden Tabelle anzuzeigen, einzugeben und auszuwerten.
| ID | DTEData | DTData |
|---|---|---|
| 1 | 1.1.2 1:01:03.1234567 Uhr | 1.1.2001 |
Tabellenname: DTETable
ID-Datentyp: Autowert
DTEData-Datentyp: Datum/Uhrzeit erweitert
DTData-Datentyp: Datum/Uhrzeit
Beispiel: Anzeigen von Datum und Uhrzeit
Im folgenden Beispiel werden das Datum und die Uhrzeit angezeigt. Das verwendete Format ist "tt/mm/jjjj hh:mm:ss.nnnnnnn" im 24-Stunden-Format. Das Format kann nicht angepasst werden.
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("DTETable")
Do Until rs.EOF
Debug.Print rs!DTETable
rs.MoveNext
Loop
Ergebnis Zugriffsanzeigen: 01.01.002 01:01:03.1234567.
Beispiel: Eingabe von Datum und Uhrzeit
Im folgenden Beispiel wird das Datum und die Uhrzeit in einem Zeichenfolgenformat eingegeben. Es werden alle Standardformate für Datum und Uhrzeit unterstützt.
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("DTETable")
With CurrentDb.OpenRecordset("DTETable")
.AddNew
![DTEData] = "1/1/9999 1:1:1.0123 AM"
![DTData] = #1/1/2001#
.Update
End With
Ergebnis Access fügt eine neue Zeile hinzu (ID = 2):
| ID | DTEData | DTData |
|---|---|---|
| 1 | 1.1.2 1:01:03.1234567 Uhr | 1.1.2001 |
| 2 | 1.1.9999 1:01:01.0123000 UHR | 1.1.2001 |
Beispiel: Auswerten eines Abfrageausdrucks
Im folgenden Beispiel wird die Day-Funktion verwendet, um die Tageszahl aus den Feldern "Datum" und "Uhrzeit" zu extrahieren.
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT Day(DTEData) as day FROM DTETable")
Do Until rs.EOF
Debug.Print "The day of the month is: "&rs!day
rs.MoveNext
Loop
Ergebnis Zugriffsanzeigen:
Der Tag des Monats ist: 1
Der Tag des Monats ist: 1
Funktionen, die mit "Datum/Uhrzeit erweitert" in Abfrageausdrücken funktionieren
Die folgenden Funktionen funktionieren mit "Datum/Uhrzeit erweitert" in Abfrageausdrücken:
Year, Month, Weekday, Day, Hour, Minute, Second, DateAdd, DateDiff und DatePart.
Darüber hinaus gibt es erweiterte Versionen einiger Funktionen, die den Argumenttyp nicht verwenden können, um zu bestimmen, dass die Berechnung einen Date/Time Extended-Wert erzeugen soll. Dies sind:
DateValueExtended, TimeValueExtended, DateSerialExtended, TimeSerialExtended, NowExtended, DateExtended, DateTimeExtended und TimeExtended.
Diese Funktionen funktionieren auf die gleiche Weise wie die Funktion ohne "Erweitert" am Ende, geben jedoch anstelle eines Datums-/Uhrzeitwerts einen Wert vom Typ "Datum/Uhrzeit erweitert" zurück.
Beachten Sie, dass VBA nicht geändert wurde, die neuen Funktionen im VBA-Code nicht erkannt werden und die vorhandenen Funktionen nicht mit Datum/Uhrzeit erweiterten Werten funktionieren.
Beispiel
Ursprüngliche Abfrage:
Select DateValue([OrderDate]) AS OrderDateOnly_DateValue
, Format([OrderDate],"Short Date") AS OrderDateOnly_Format
From tblOrders
Ändern Sie nun DateValue([OrderDate]) in DateValueExtended([OrderDate]), wodurch der erste Ausdruck korrigiert wird.
Beachten Sie, dass Access die Format-Funktion für Datum/Uhrzeit erweiterte Spalten nicht verarbeitet. Sie können einfach die Format-Eigenschaft für die Spalte festlegen.
Wenn Sie folgendes verwenden:
SELECT DateValueExtended([OrderDate]) AS OrderDateOnly_DateValue, Table1.OrderDate
FROM Table1;
Legen Sie die Format-Eigenschaft für die zweite Spalte auf "Short Date" fest. Sie erhalten die gewünschten Ergebnisse.
Siehe auch
Einführung in Datentypen und Feldeigenschaften