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).
Warnung für erweiterten Bereich Wenn Sie in Access Ausdrücke erstellen und Datum/Uhrzeit-Funktionen basierend auf dem Datentyp "Erweitertes Datum/Uhrzeit" verwenden, kann die Genauigkeit der Berechnungen verloren gehen oder andere Probleme mit den Ergebnissen auftreten. 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 mit höherer Genauigkeit zu nutzen, können Sie ein Feld zu einer Access-Tabelle 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 Das Eingeben von Datums- und Uhrzeitwerten ähnelt dem Datentyp "Datum/Uhrzeit", mit dem Unterschied, dass Sie auch Bruchteile von Nanosekunden 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 und in der Gruppe Formatierung die
"Dezimalstellen erhöhen" oder "Dezimalstellen verringern
.
Formatierung Sowohl die Datentypen "Datum/Uhrzeit" als auch "Datum/Uhrzeit erweitert" verwenden ähnliche Standardformatierungszeichenfolgen ( Standarddatum), langes Datum, mittleres Datum, kurzes Datum, lange Zeit, mittlere Zeit 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 zu Datenbanken mit einem entsprechenden Datentyp erstellen oder aus Datenbanken importieren, beispielsweise mit dem Datentyp SQL Server datetime2. 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-Treiber 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 erweiterter Datums- und Uhrzeitfeatures (OLE DB).
Formulare und Berichte Sie können einem Formular oder Bericht den Datentyp "Erweitertes Datum/Uhrzeit" 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.
Unterstützung von Ausdrücken Der Datentyp "Datum/Uhrzeit erweitert" 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 Access-Versionen, die das Feature nicht enthalten, die Datenbank nicht öffnen.
Sie können den Datentyp "Erweitertes Datum/Uhrzeit" zum Verknüpfen und Importieren von Vorgängen mit der Option "Aktueller Datenbankzugriff" aktivieren oder deaktivieren. Unterstützung des erweiterten Datentyps "Datum/Uhrzeit" für verknüpfte/importierte Tabellen. 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: DTETfähig
ID-Datentyp: AutoNumber-
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 Access wird angezeigt: 01/01/0002 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 Access zeigt Folgendes an:
Der Tag des Monats ist: 1
Der Tag des Monats ist: 1
Funktionen, die in Abfrageausdrücken mit "Erweitertes Datum/Uhrzeit" verwendet werden
Die folgenden Funktionen funktionieren mit "Erweitertes Datum/Uhrzeit" in Abfrageausdrücken:
Year, Month, Weekday, Day, Hour, Minute, Second, DateAdd, DateDiff und DatePart.
Darüber hinaus gibt es erweiterte Versionen einiger Funktionen, die nicht den Typ des Arguments verwenden können, um zu bestimmen, dass die Berechnung einen erweiterten Wert für Datum/Uhrzeit erzeugen soll. Dies sind:
DateValueExtended, TimeValueExtended, DateSerialExtended, TimeSerialExtended, NowExtended, DateExtended, DateTimeExtended und TimeExtended.
Diese Funktionen funktionieren genauso wie die Funktion ohne "Extended" am Ende, geben jedoch einen erweiterten Datum/Uhrzeit-Wert anstelle eines Datum/Uhrzeit-Werts 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 erweiterten Datums-/Uhrzeitwerten 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 Formatfunktion für erweiterte Spalten für Datum/Uhrzeit nicht verarbeitet. Sie können einfach die Format-Eigenschaft für die Spalte festlegen.
Wenn Sie daher Folgendes verwenden:
SELECT DateValueExtended([OrderDate]) AS OrderDateOnly_DateValue, Table1.OrderDate
FROM Table1;
Und setzen Sie die Format-Eigenschaft für die zweite Spalte auf "Kurzes Datum", um die gewünschten Ergebnisse zu erhalten.
Siehe auch
Einführung in Datentypen und Feldeigenschaften