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 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
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 |
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. For å kontrollere visningen av de fraksjonelle nanosekundene åpner du tabellen og på båndet velger du Felter, 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 importer 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 seDatatypestøtte for ODBC-dato- og tidsforbedringer og Bruk forbedrede dato- og tidsfunksjoner (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.
Uttrykksstøtte Datatypen Date/Time Extended støtter SQL Aggregate Functions 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 |
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 inneholder funksjonen, åpne databasen.
Du kan aktivere eller deaktivere datatypen Date/Time Extended for kobling og importering av operasjoner med alternativet Gjeldende databasetilgangstøtter dato/klokkeslett utvidet datatype for koblede/lmporterte tabeller. Hvis du vil ha mer informasjon, kan du se Angi brukeralternativer for den gjeldende databasen
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: Date/TimeEksempel: 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