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 finde flere oplysninger i datetime2 (Transact-SQL).

Interval for udvidet dato og klokkeslæt Advarsel Når du opretter udtryk og bruger dato-og klokkeslætsfunktioner ud fra datatypen Udvidet dato og klokkeslæt i Access, kan du miste præcision i beregninger eller opleve 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 angående 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.

Tabel i designvisning Hvis du vil have fordel af det større dataområde og den højere 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.

Indtastning af dato og klokkeslæt Indtastning af dato og klokkeslæt-værdier svarer til Dato og klokkeslæt-datatypen, bortset fra at du også kan indtaste en brøkdel af en 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, på båndet vælge felter, og i gruppen Formatering skal du vælge Knapfladefor Forøg decimaler eller Knapflade for Formindsk decimaler.

Formatering Datatyperne Dato/klokkeslæt og Udvidet dato og klokkeslæt anvendes på samme måde som almindelige formateringsstrenge Standarddato, Langt datoformat, Mellemlangt klokkeslætsformat, 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).

Sammenkæd og importér Du kan også oprette et link til 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 finde flere oplysninger under Forbedringer af understøttelse af datatype for ODBC dato og klokkeslæt og Brug forbedrede funktioner for dato og klokkeslæt (OLE DB).

Formularer og rapporter Du kan tilføje den udvidede dato og klokkeslæt-datatype til en formular eller en 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 Den udvidede 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 og klokkeslæt-datatype for handlinger til sammenkædning og import med indstillingen Aktuel databaseadgangUnderstøttelse af 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: Automatisk nummerering
DTEData-datatype: Udvidet dato og klokkeslæt
Datatypen DTData: Dato og 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:

Dag i måneden er: 1
Dag i måneden er: 1

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

Følgende funktioner fungerer 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 producere en udvidet dato og 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" til sidst, men returnerer en Udvidet dato og klokkeslæt-værdi i stedet for en Dato/klokkeslæt-værdi.

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

Eksempel

Oprindelig forespørgsel:


Select DateValue([OrderDate]) AS OrderDateOnly_DateValue

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

From tblOrders

Rediger nu DateValue([OrderDate]) til DateValueExtended([OrderDate]), hvilket vil rette det første udtryk.

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

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