Het uitgebreide datum/tijd-gegevenstype gebruiken
Van toepassing op
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.
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
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
Knop 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