Het uitgebreide datum/tijd-gegevenstype gebruiken

Van toepassing op
Access voor Microsoft 365 Access 2024 Access 2021

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 datetime2 (Transact-SQL) voor meer informatie.

Datum/tijd Uitgebreid bereik Waarschuwing Wanneer u expressies maakt en datum/tijd-functies gebruikt op basis van het uitgebreide gegevenstype Datum/tijd in Access, kunt u de precisie van berekeningen verliezen of andere problemen ondervinden 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 Overwegingen voor achterwaartse compatibiliteit 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

Naar boven

Het uitgebreide datum/tijd-gegevenstype gebruiken

De volgende informatie beschrijft belangrijke gebruiksoverwegingen.

Tabelontwerpweergave Als u wilt profiteren van het grotere gegevensbereik en een 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 gegevenstype Datum/tijd, behalve dat u ook een fractionele 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 gefractioneerde nanoseconden wilt beheren, opent u de tabel, selecteert u op het lint Velden en selecteert u in de groep Opmaak de optieKnop Decimaalteken vergroten of Decimaalteken verkleinen.

Opmaak Zowel de uitgebreide gegevenstypen Datum/tijd als Datum/tijd gebruiken vergelijkbare standaardopmaaktekenreeksen, zoals Algemene datum, Lange datum, Middellange datum, Korte datum, Lange tijd, Gemiddelde tijd en Korte tijd en ondersteunen aangepaste opmaak. 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 maken naar of importeren uit databases met een bijbehorend gegevenstype, zoals het gegevenstype SQL Server datetime2. 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. We raden u aan Microsoft ODBC-stuurprogramma 13.1 te gebruiken voor SQL Server. Het gebruik van OLE DB wordt ondersteund. Zie Ondersteuning voor gegevenstypen voor verbeteringen van ODBC-datum en -tijd en Verbeterde datum- en tijdfuncties (OLE DB) gebruiken voor meer informatie.

Formulieren en rapporten U kunt het gegevenstype Uitgebreide datum/tijd 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 gegevenstype Datum/tijd ondersteunt statistische SQL-functies 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

Naar boven

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.

Naar boven

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
Gegevenstype DTEData: Datum/tijd verlengd
Gegevenstype DTData: Datum/tijd

Voorbeeld: 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 wordt weergegeven: 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 Er wordt een nieuwe rij toegevoegd (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-weergaven:

De dag van de maand is: 1
De dag van de maand is: 1

Functies die werken met datum/tijd uitgebreid in query-expressies

De volgende functies werken met Date/Time Extended in query-expressies:
​​​​​​​
Year, Month, Weekday, Day, Hour, Minute, Second, DateAdd, DateDiff en DatePart.

Daarnaast zijn er uitgebreide versies van sommige functies die het type argument niet kunnen gebruiken om te bepalen dat de berekening een uitgebreide datum/tijd-waarde moet opleveren. Dit zijn:

DateValueExtended, TimeValueExtended, DateSerialExtended, TimeSerialExtended, NowExtended, DateExtended, DateTimeExtended en TimeExtended.

Deze functies werken op dezelfde manier als de functie zonder 'Uitgebreid' aan het einde, maar retourneren een datum/tijd uitgebreide waarde in plaats van een datum/tijd-waarde.

Houd er rekening mee dat VBA niet is gewijzigd, dat de nieuwe functies niet worden herkend in VBA-code en dat de bestaande functies niet werken met datum/tijd uitgebreide waarden.

Voorbeeld

Oorspronkelijke query:


Select DateValue([OrderDate]) AS OrderDateOnly_DateValue

, Format([OrderDate],"Short Date") AS OrderDateOnly_Format

From tblOrders

Wijzig nu DateValue([OrderDate]) in DateValueExtended([OrderDate]), waarmee de eerste expressie wordt hersteld.

Houd er rekening mee dat access de functie Opmaak niet verwerkt voor uitgebreide datum/tijd-kolommen; u kunt de eigenschap Format voor de kolom instellen.

Dus als u het volgende gebruikt:


SELECT DateValueExtended([OrderDate]) AS OrderDateOnly_DateValue, Table1.OrderDate

FROM Table1;

Stel de eigenschap Format voor de tweede kolom in op 'Korte datum'. U krijgt de gewenste resultaten.

Naar boven

Zie ook

Inleiding tot gegevenstypen en veldeigenschappen

Een datum- en tijdveld opmaken

Een datum- en tijdveld maken of verwijderen