Brug udvidet dato og klokkeslæt-datatype

Gælder for
Access til Microsoft 365 Access 2024 Access 2021

Datoen og tidspunktet for udvidede datatype gemmer oplysninger om dato og klokkeslæt og svarer til datatypen Dato/klokkeslæt, men det giver et større datoområde, en højere decimalpræcisionen og kompatibilitet med SQL Server-datetime2-datotype. Når du importerer eller sammenkæder Access-data til SQL Server, kan du på en ensartet måde knytte et udvidet dato og klokkeslæt-felt i Access Dato og klokkeslæt til en SQL Server-datetime2-kolonne. Du kan få mere at vide under datetime2 (Transact-SQL).

Udvidet dato/klokkeslæt-område Advarsel Når du opretter udtryk og bruger dato/klokkeslæt-funktioner baseret på den udvidede dato/klokkeslæt-datatype i Access, kan du miste præcisionen i beregninger eller støde på andre problemer med resultaterne. Vi er opmærksomme på dette problem og planlægger at forbedre udtryk og funktioner i en kommende version. Som en midlertidig løsning kan du Opret en pass-through-forespørgsel for at bruge en tilsvarende SQL Server-udtryk og Dato og klokkeslætsfunktioner. Du kan finde flere oplysninger i Sammenligning af Access SQL og SQL Server TSQL.

Denne artikel indeholder

Sammenligning af dato/klokkeslæt- og udvidede dato/klokkeslæt-datatyper Brug udvidet dato og klokkeslæt-datatype Overvejelser i forbindelse med bagudkompatibilitet Brug udvidet dato og klokkeslæt-datatype som en streng i VBA

Sammenligning af dato/klokkeslæt- og udvidede dato/klokkeslæt-datatyper

De følgende tabeller opsummerer vigtige forskelle mellem de to datatyper.

Attribut Dato og klokkeslæt Udvidet dato og klokkeslæt
Minimumværdi 100-01-01 00:00:00 0001-01-01 00:00:00
Maksimumværdi 9999-12-31 23:59:59.999 9999-12-31 23:59:59.9999999
Nøjagtighed 0,001 sekunder 1 nanosekund
Størrelse Dobbelt præcision flydende punkter Kodet streng på 42 byte

Toppen af siden

Brug udvidet dato og klokkeslæt-datatype

Følgende oplysninger beskriver vigtige brugsovervejelser.

Tabeldesignvisning Hvis du vil udnytte det større dataområde og større præcision, kan du føje et felt til en Access-tabel. Du kan også konvertere en dato og et klokkeslæt til den udvidet dato og klokkeslæt-datatype i Tabel i designvisning. Brug af denne datatype som en primær nøglefelt understøttes også. Få mere at vide under Opret en indholdsfortegnelse og tilføj felter.

Angive dato og klokkeslæt Angivelse af dato- og klokkeslætsværdier svarer til datatypen Dato og klokkeslæt, bortset fra at du også kan angive en decimal nanosekund. F.eks.:

  • Indtastningsformat: mm/dd/yyyy hh:mm:ss.nnnnnnn
  • Eksempel: 06/15/1215 09:25:3.234

Hvis der er mere end 7 decimale nanosekunder, bliver de afrundet til 7 cifre. Hvis du vil styre visningen af de decimale nanosekunder, skal du åbne Tabellen, vælge Felter på båndet og i gruppen Formatering vælge KnappenForøg decimaler eller Knapfladefor Formindsk decimaler.

Formatering Både de udvidede dato/klokkeslæt-typer og udvidede dato/klokkeslæt-datatyper bruger lignende standardformateringsstrenge for Standarddatoformat, Langt datoformat, Mellemlangtdatoformat, Kort datoformat, Langt klokkeslætsformat, Mellemlangt klokkeslætsformat og Kort klokkeslætsformat , og begge understøtter brugerdefineret formatering. For den udvidede dato og klokkeslæt-datatype understøtter de tidsbaserede standardformater også decimalpræcisionen for nanosekunder. Formatering af den udvidede dato og klokkeslæt -datatype er som standard angivet til Standarddatoformat og Langt klokkeslætsformat formater og følger de indstillinger, der er angivet i Windows internationale indstillinger i. Du kan også styre formateringen af decimalpræcisionen ved at bruge egenskaben Antal decimaler til at angive antallet af cifre til højre for decimaltegnet (1-7).

Sammenbind og importér Du kan også sammenkæde eller importere fra databaser med en tilsvarende datatype, f.eks. datatypen SQL Server datetime2. SQL Server-versionen 2014 eller senere understøttes. Udvidet Dato og klokkeslæt-datatype kræver brugen af Microsoft ODBC-driver til SQL Server 11 eller nyere. Vi anbefaler, at du bruger Microsoft ODBC Driver 13.1 til SQL Server. Brugen af OLE DB understøttes også. Du kan få mere at vide under Understøttelse af datatype for ODBC-forbedringer af dato og klokkeslæt og Brug forbedrede dato- og klokkeslætsfunktioner (OLE DB).

Formularer og rapporter Du kan føje udvidet dato og klokkeslæt-datatype til en formular eller rapport. I en formular kan du bruge datovælgeren og inputmasken til at angive en dato med det større område, men ikke den decimalpræcision på nanosekunder.

Understøttelse af udtryk Udvidet dato og klokkeslæt-datatype understøtter SQL-aggregeringsfunktioner og evaluering af udtryk. Brug f. eks. LoggedDateTime som et felt med Udvidet dato og klokkeslæt-datatype:

Opgave Eksempel Resultat
Find minimumsværdien Min(LoggedDateTime) Den tidligste dato og klokkeslæt, der er inden for intervallet
Udtræk måneden Month(LoggedDateTime) Månedens navn, såsom januar
Tilføj en dag [LoggedDateTime]+1 Tirsdag ville blive onsdag

Toppen af siden

Overvejelser angående bagudkompatibilitet

Udvidet dato og klokkeslæt-datatype er ikke kompatibel med tidligere versioner af Microsoft Access. Hvis typen bruges i en lokal Access-tabel, vil versioner af Access, der ikke indeholder funktionen, ikke kunne åbne databasen.

Du kan aktivere eller deaktivere den udvidede dato/klokkeslæt-datatype for sammenkædning og import med indstillingen Aktuel databaseadgangUnderstøtter udvidet dato og klokkeslæt-datatype for sammenkædede/lmporterede tabeller. Få mere at vide under Angiv brugerindstillinger for den aktuelle database.

Toppen af siden

Brug udvidet dato og klokkeslæt-datatype som en streng i VBA

Følgende VBA-eksempler bruger DAO-metoder til at få vist, angive og evaluere Udvidet dato og klokkeslæt-datatype, der er baseret på tabellen nedenfor.

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

Tabelnavn: DTETable
Datatypen Id: Autonummerering
DTEData-datatype: Udvidet dato/klokkeslæt
DTData-datatype: Dato/klokkeslæt

Eksempel: Visning af dato og klokkeslæt

Følgende eksempel viser dato og klokkeslæt. Formatet er mm/dd/yyyy hh:mm:ss.nnnnnnn i 24-timers format. Formatet kan ikke tilpasses.


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: Indtastning af dato og klokkeslæt

Følgende eksempel angiver dato og klokkeslæt ved hjælp af strengformatet. Alle standarddato-og klokkeslætsformater understø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 tilføjer en ny række (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: Evaluering af et forespørgselsudtryk

I følgende eksempel bruges Funktionen Dag til at udtrække dato-og klokkeslætsfelter.


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

Funktioner, der fungerer med Udvidet dato og klokkeslæt i forespørgselsudtryk

Følgende funktioner fungerer sammen med Udvidet dato og klokkeslæt i forespørgselsudtryk:
​​​​​​​
Year, Month, Weekday, Day, Hour, Minute, Second, DateAdd, DateDiff og DatePart.

Desuden er der Udvidede versioner af nogle funktioner, der ikke kan bruge argumenttypen til at bestemme, at beregningen skal give en udvidet dato/klokkeslæt-værdi. Disse er:

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

Disse funktioner fungerer på samme måde som funktionen uden "Udvidet" i slutningen, men returnerer en udvidet dato/klokkeslæt-værdi i stedet for en Dato/klokkeslæt-værdi.

Bemærk, at VBA ikke er blevet ændret, de nye funktioner genkendes ikke i VBA-kode, og de eksisterende funktioner fungerer ikke med udvidede værdier for dato og klokkeslæt.

Eksempel

Oprindelig forespørgsel:


Select DateValue([OrderDate]) AS OrderDateOnly_DateValue

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

From tblOrders

Du kan nu ændre Datoværdi([Ordredato]) til DateValueExtended([Ordredato]), hvilket retter det første udtryk.

Bemærk, at Access ikke håndterer funktionen Format for udvidede kolonner med dato og klokkeslæt. kan du blot angive egenskaben Format for kolonnen.

Derfor, hvis du bruger:


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

FROM Table1;

Og angiv egenskaben Format for den anden kolonne til "Kort datoformat", så får du de ønskede resultater.

Toppen af siden

Se også

Introduktion til datatyper og feltegenskaber

Formatér et dato-og klokkeslætsfelt

Opret eller slet et dato-og klokkeslætsfelt