Bruk av den utvidede datatypen Date/Time

Gjelder for
Access for Microsoft 365 Access 2024 Access 2021

Datatypen Date/Time Extended lagrer dato- og tidsinformasjon og ligner på datatypen Date/Time, men den gir et større datointervall, en høyere fraksjonell presisjon og kompatibiltet med datotypen SQL Server datetime2. Når du importerer eller linker Access-data til SQL Server, kan du konsekvent tilordne et Access Date/Time Extended-felt til en SQL Server datetime2-kolonne. Hvis du vil ha mer informasjon, kan du se datetime2 (Transact-SQL).

Advarsel om dato/klokkeslett Extended-område Når du oppretter uttrykker og bruker date/time-funksjoner basert på Date/Time Extended-datatypen i Access, kan du miste presisjon i beregninger eller støte på andre problemer med resultatene. Vi er klar over at dette problemet og planlegger å forbedre støtten for uttrykk og funksjoner i en kommende utgivelse. Som en løsning kan du Opprette en direktespørring for å bruke det samsvarende SQL Server-uttrykket og date/timer-funksjoner. Hvis du vil ha mer informasjon, kan du se Sammenligne Access SQL med SQL Server TSQL.

I denne artikkelen

Sammenligne datotypene Date/Time og Date/Time Extended Bruk av den utvidede datatypen Date/Time Vurderinger av bakoverkompatibilitet Bruk av datatypen Date/Time Extended som en streng i VBA

Sammenligne datotypene Date/Time og Date/Time Extended

Følgende tabeller oppsummerer viktige forskjeller mellom de to datatypene.

Attributt Date/Time Date/Time Extended
Minimumsverdi 100-01-01 00:00:00 0001-01-01 00:00:00
Maksimumsverdi 9999-12-31 23:59:59.999 9999-12-31 23:59:59.9999999
Nøyaktighet 0,001 sekunder 1 nanosekund
Størrelse Flytende komma med dobbel presisjon Kodet streng på 42 byte

Til toppen av siden

Bruk av den utvidede datatypen Date/Time

Følgende informasjon beskriver viktige bruksbetraktninger.

Tabellutformingsvisning For å dra nytte av det større dataområdet og høyere presisjon kan du legge til et felt i en Access-tabell. Du kan også konvertere en Date/Time-datatype til Date/Time Extended-datatype i Tabellutformingsvisning. Bruk av denne datatypen som et primærnøkkelfelt støttes også. Hvis du vil ha mer informasjon, kan du se Opprette en tabell og legge til felter.

Skrive inn datoen og tidspunktet Å skrive inn date- og time-verdier ligner på Date/Time-datatypen, med unntak av at du nå også kan skrive enn et fraksjonelt nanosekund. Eksempel:

  • Oppføringsformat:mm/dd/åååå hh:mm:ss.nnnnnnn
  • Eksempel: 06/15/1215 09:25:3.234

Hvis det er mer enn 7 fraksjonelle nanosekunder, rundes de av til 7 siffer. Hvis du vil kontrollere visningen av de fraksjonelle nanosekundene, åpner du tabellen, på båndet velger du Felt, og i Formatering-gruppen velger du Øk antall desimaler eller Reduser antall desimaler .

Formatering Både datatypen Date/Time og datatypen Date/Time Extended bruker lignende standard formateringsstrenger for generell dato, lang dato, mellomlang dato, kort dato, lang tid, mellomlang tid og kort tid , og begge støtter tilpasset formatering. For datatypen Date/Time Extended støtter standardformatene også fraksjonell presisjon for nanosekunder. Formatering av datatypen Date/Time Extended er som standard formatene Generell dato og Lang tid og følger alternativene angitt i regionale innstillinger i Windows. Du kan også kontrollere formateringen ved å bruke Desimalplasser-egenskapen for å angi antallet sifre til høyre for desimalkommaet (1–7).

Koble til og importere Du kan også koble til eller importere fra databaser med tilsvarende datatype, for eksempel datatypen SQL Server datetime2. SQL Server versjon 2014 eller nyere databaser er støttet. Datatypen Date/Time Extended krever bruken av Microsoft ODBC Driver for SQL Server 11 eller nyere. Vi anbefaler bruk av Microsoft ODBC Driver 13.1 for SQL Server. Bruken av OLE DB støttes også. Hvis du vil ha mer informasjon, kan du se Datatypestøtte for dato- og klokkeslettforbedringer i ODBC og Bruke forbedrede dato- og klokkeslettfunksjoner (OLE DB).

Skjemaer og rapporter Du kan legge til datatypen Date/Time Extended i et skjema eller en rapport. I et skjema kan du bruke datovelgeren og inndatamasken for å skrive inn en dato med det større området, men ikke den fraksjonelle presisjonen for nanosekunder.

Støtte for uttrykk Datatypen Date/Time Extended støtter SQL-mengdefunksjoner og uttrykksevaluering. For eksempel bruk av LoggedDateTime som et felt med datatypen Date/Time Extended:

Oppgave Eksempel Resultat
Finn minimumsverdien Min(LoggedDateTime) Den tidligste datoen og tiden innenfor området
Hent ut denne måneden Month(LoggedDateTime) Månedsnavnet, for eksempel januar
Legg til én dag [LoggedDateTime]+1 Tirsdag ville blitt onsdag

Til toppen av siden

Vurderinger av bakoverkompatibilitet

Datatypen Date/Time Extended er ikke kompatibel med tidligere versjoner av Microsoft Access. Hvis typen brukes i en lokal Access-tabell, kan ikke versjoner av Access som ikke inkluderer funksjonen, åpne databasen.

Du kan aktivere eller deaktivere datatypen Date/Time Extended for kobling til og importering av operasjoner med alternativet Current Database Access Støtte Date/Time Extended-datatype for koblede/lmporterte tabeller. Hvis du vil ha mer informasjon, kan du se Angi brukeralternativer for den gjeldende databasen

Til toppen av siden

Bruk av datatypen Date/Time Extended som en streng i VBA

Følgende VBA-eksempler bruker DAO-metoder for å vise, skrive inn og evaluere datatypen Date/Time Extended basert på tabellen nedenfor.

ID DTEData DTData
1 1/1/2 1:01:03.1234567 AM 1/1/2001

Tabellnavn: DTETable
ID-datatype: Autonummer
DTEData-datatype: Date/Time Extended
DTData-datatype: Dato/klokkeslett

Eksempel: Viser datoen og tiden

Følgende eksempel viser datoen og tiden. Formatet som brukes er mm/dd/åååå hh:mm:ss.nnnnnnn i 24-timers format. Formatet kan ikke egendefineres.


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

Resultat Access viser: 01/01/0002 01:01:03.1234567.

Eksempel: Skrive inn datoen og tidspunktet

Følgende eksempel skriver inn datoen og tidspunktet i et strengformat. Alle standard dato- og tidsformater støttes.


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

Resultat Access legger til en ny rad (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

Eksempel: Evaluerer et spørringsuttrykk

Følgende eksempel bruker Dag-funksjonen for å hente ut dagnummeret fra dato- og tidsfelter.


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

Resultat Access viser:

Dagen i måneden er: 1
Dagen i måneden er: 1

Funksjoner som fungerer med Date/Time Extended i spørringsuttrykk

Følgende funksjoner fungerer med Date/Time Extended i spørringsuttrykk:
​​​​​​​
Year, Month, Weekday, Day, Hour, Minute, Second, DateAdd, DateDiff og DatePart.

I tillegg finnes det utvidede versjoner av enkelte funksjoner som ikke kan bruke argumenttypen til å bestemme at beregningen skal produsere en Date/Time Extended-verdi. Dette skjer når:

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

Disse funksjonene fungerer på samme måte som funksjonen uten "Extended" på slutten, men returnerer en Date/Time Extended-verdi i stedet for en Date/Time-verdi.

Vær oppmerksom på at VBA ikke er endret, de nye funksjonene gjenkjennes ikke i VBA-kode, og de eksisterende funksjonene fungerer ikke med dato/utvidede datoer/klokkeslett-verdier.

Eksempel

Opprinnelig spørring:


Select DateValue([OrderDate]) AS OrderDateOnly_DateValue

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

From tblOrders

Nå endrer du DateValue([OrderDate]) til DateValueExtended([OrderDate]), som vil rette opp det første uttrykket.

Vær oppmerksom på at Access ikke håndterer formatfunksjonen for dato/utvidede datoer-/klokkeslett-kolonner. du kan bare angi Format-egenskapen for kolonnen.

Hvis du bruker følgende:


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

FROM Table1;

Og sett Format-egenskapen for den andre kolonnen til "Kort dato", vil du få resultatene du ønsker.

Til toppen av siden

Se også

Innføring i datatyper og feltegenskaper

Formater et dato- og tidsfelt

Opprett eller slett et dato- og tidsfelt.