Het uitgebreide gegevenstype datum/tijd bevat datum- en tijdgegevens en is vergelijkbaar met het gegevenstype datum/tijd, maar bevat een groter datumbereik, meer decimale nauwkeurigheid en compatibiliteit met het datetim2-datumtype van de SQL Server. Wanneer u Access-gegevens importeert of koppelt aan SQL Server, kunt u een uitgebreid datum/tijd-veld van Access consequent toewijzen aan een datetime2-kolom in de SQL Server. Zie voor meer informatie datetime2 (Transact-SQL).
Waarschuwing Wanneer u expressies maakt en datum/tijdfuncties gebruikt op basis van het uitgebreide datum/tijd-gegevenstype in Access, kan het zijn dat dit afdoet aan de precisie van berekeningen of leidt tot andere problemen met de resultaten. We zijn op de hoogte van dit probleem en zijn van plan expressies en functies beter te ondersteunen in een volgende release. Als tijdelijke oplossing kunt u Een pass through-query maken om de overeenkomstige SQL Server-expressie en -datum/tijdfuncties te gebruiken. Zie voor meer informatie Access SQL vergelijken met SQL Server TSQL.
In dit artikel
Datum/tijd-gegevenstype vergelijken met het uitgebreide datum/tijd-gegevenstype |
Het uitgebreide datum/tijd-gegevenstype gebruiken als een reeks in VBA |
Datum/tijd-gegevenstype vergelijken met het uitgebreide datum/tijd-gegevenstype
In de volgende tabellen vindt u een overzicht van belangrijke verschillen tussen de twee gegevenstypen.
Eigenschap |
Datum/tijd |
Uitgebreide datum/tijd |
---|---|---|
Minimale waarde |
100-01-01 00:00:00 |
0001-01-01 00:00:00 |
Maximale waarde |
9999-12-31 23:59:59.999 |
9999-12-31 23:59:59.9999999 |
Nauwkeurigheid |
0,001 seconden |
1 nanoseconde |
Grootte |
Drijvende komma met dubbele precisie |
Gecodeerde reeks van 42 bytes |
Het uitgebreide datum/tijd-gegevenstype gebruiken
De volgende informatie beschrijft belangrijke gebruiksoverwegingen.
Weergave tabelontwerp Als u optimaal gebruik wilt maken van het grotere gegevensbereik en de hogere precisie, kunt u een veld toevoegen aan een Access-tabel. U kunt een datum/tijd-gegevenstype ook omzetten naar een uitgebreid datum/tijd-gegevenstype in de Tabelontwerp-weergave. Het gebruik van dit gegevenstype als primaire veld wordt ook ondersteund. Zie voor meer informatie Een tabel maken en velden toevoegen.
De datum en tijd invoeren Het invoeren van datum- en tijdwaarden is vergelijkbaar met het datum/tijd-gegevenstype, met uitzondering van het feit dat u ook een gedeeltelijke nanoseconde kunt invoeren. Bijvoorbeeld:
-
Invoerindeling: mm/dd/jjj uu:mm:ss.nnnnnnn
-
Voorbeeld: 06/15/1215 09:25:3.234
Als er meer dan 7 gedeeltelijke nanoseconden zijn, worden deze afgerond op 7 cijfers. Als u de weergave van de gedeeltelijke nanoseconden wilt beheren, opent u de Tabel, selecteert u op het lint Velden en selecteert u in de groep Opmaak, Meer decimalen of Minder decimalen .
Opmaak Zowel in het datum/tijd-gegevenstype als het uitgebreide datum/tijd-gegevenstype wordt de standaardnotatie van Algemene datum, Lange datum, Middellange datum, Korte datum, Lange tijd, Middellange tijd en Korte tijd gebruikt en beide ondersteunen een aangepaste indeling. Voor het datum/tijd-gegevenstype ondersteunt de op tijd gebaseerde standaardnotatie ook nauwkeurige weergave van nanoseconden. De standaardindeling voor het uitgebreide datum/tijd-gegevenstype is Algemene datum en Lange tijd en volgt de opties die zijn gespecificeerd in de Regionale instellingen van Windows. U kunt ook de opmaak van de decimalen bepalen door de eigenschap Plaatsen van decimalen te gebruiken om het aantal cijfers rechts van de decimale komma op te geven (1-7).
Koppelen en importeren U kunt ook een koppeling gebruiken naar of importeren uit databases met een bijbehorend gegevenstype, zoals het gegevenstype datetime2 van SQL Server. Databases van SQL Server versie 2014 of hoger worden ondersteund. Voor het uitgebreide datum/tijd-gegevenstype is het gebruik van het Microsoft ODBC-stuurprogramma voor SQL Server 11 of hoger vereist. U wordt aangeraden Microsoft ODBC-stuurprogramma 13.1 voor SQL Server te gebruiken. Het gebruik van OLE DB wordt ondersteund. Zie voor meer informatie Gegevenstype-ondersteuning ODBC verbeteringen datum en tijd en Geavanceerde datum- en tijdfuncties gebruiken (OLE DB).
Formulieren en rapporten U kunt het uitgebreide datum/tijd-gegevenstype toevoegen aan een formulier of rapport. In een formulier kunt u de datumkiezer en het invoermasker gebruiken om een datum met een groter bereik in te voeren, maar niet de nauwkeurigheid voor nanoseconden.
Ondersteuning voor expressies Het uitgebreide datum/tijd-gegevenstype ondersteunt Statistische functies van SQL en expressie-evaluatie. Zo kunt u LoggedDateTime met het uitgebreide datum/tijd-gegevenstype bijvoorbeeld gebruiken als een veld:
Taak |
Voorbeeld |
Resultaat |
---|---|---|
De minimumwaarde zoeken |
Min(LoggedDateTime) |
De vroegste datum en tijd binnen het bereik |
De maand extraheren |
Maand(LoggedDateTime) |
De naam van de maand, zoals januari |
Eén dag toevoegen |
[LoggedDateTime]+1 |
Dinsdag wordt dan woensdag |
Aandachtspunten voor compatibiliteit met eerdere versies
Het uitgebreide datum/tijd-gegevenstype is niet compatibel met eerdere versies van Microsoft Access. Als het type wordt gebruikt in een lokale Access-tabel, kunnen versies van Access die de functie niet bevatten, de database niet openen.
U kunt het uitgebreide gegevenstype Datum/tijd voor koppelings- en importbewerkingen in- of uitschakelen met de optie Huidige databasetoegangOndersteuning voor uitgebreid gegevenstype Datum/tijd voor gekoppelde/lmported tabellen. Zie Gebruikersopties voor de huidige database instellen voor meer informatie.
Het uitgebreide datum/tijd-gegevenstype gebruiken als een reeks in VBA
De volgende VBA-voorbeelden maken gebruik van DAO-methoden om het uitgebreide datum/tijd-gegevenstype weer te geven, in te voeren en te evalueren op basis van de onderstaande tabel.
Id |
DTEData |
DTData |
1 |
1/1/2 1:01:03.1234567 AM |
1/1/2001 |
Tabelnaam: DTETable
ID gegevenstype: Autonummering DTEData gegevenstype: Uitgebreide datum/tijd DTData gegevenstype: Datum/tijdVoorbeeld: De datum en tijd weergeven
In het volgende voorbeeld worden de datum en de tijd weergegeven. De gebruikte indeling is mm/dd/jjjj uu:mm:ss.nnnnnnn in 24-uurs klok. Deze indeling kan niet worden aangepast.
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
Resultaat Access-weergave: 01/01/0002 01:01:03.1234567.
Voorbeeld: De datum en tijd invoeren
In het volgende voorbeeld worden de datum en tijd ingevoerd met een reeksnotatie. Alle standaardnotaties voor datum en tijd worden ondersteund.
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
Resultaat Access voegt een nieuwe rij toe (ID = 2):
Id |
DTEData |
DTData |
1 |
1/1/2 1:01:03.1234567 AM |
1/1/2001 |
2 |
1/1/9999 1:01:01.0123000 AM |
1/1/2001 |
Voorbeeld: Een query-expressie evalueren
In het volgende voorbeeld wordt de Dagfunctie gebruikt om het nummer uit de datum- en tijdvelden te extraheren.
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
Resultaat Access-weergave:
De dag van de maand is: 1
De dag van de maand is: 1Zie ook
Inleiding tot gegevenstypen en veldeigenschappen