Utilizarea tipului de date Extins dată/oră

Se aplică la
Access pentru Microsoft 365 Access 2024 Access 2021

Tipul de date Dată/Oră Extins stochează informații despre dată și oră și este similar cu tipul de date Dată/Oră, dar oferă un interval de date mai mare, o precizie fracționare mai mare și compatibilitate cu tipul de dată SQL Server datetime2. Atunci când importați sau legați date Access la SQL Server, puteți mapa în mod unitar un câmp Extins dată/oră Access la o coloană SQL Server datetime2. Pentru mai multe informații, consultați datetime2 (Transact-SQL).

Avertismentinterval extins dată/oră Când creați expresii și utilizați funcții dată/oră pe baza tipului de date Extins dată/oră în Access, este posibil să pierdeți precizia în calcule sau să întâmpinați alte probleme cu rezultatele. Cunoaștem această problemă și planificăm să acceptăm mai bine expresiile și funcțiile într-o ediție viitoare. Ca soluție, puteți crea o interogare directă pentru a utiliza funcțiile echivalente SQL Server expresie și dată/oră. Pentru mai multe informații, consultați Compararea Access SQL cu SQL Server TSQL.

În acest articol

Compararea tipurilor de date Dată/Oră și Dată/Oră Extins Utilizarea tipului de date Extins dată/oră Considerente de compatibilitate inversă Utilizarea tipului de date Extins dată/oră ca șir în VBA

Compararea tipurilor de date Dată/Oră și Dată/Oră Extins

Următoarele tabele rezumă diferențele importante dintre cele două tipuri de date.

Atribut Dată/Oră Data/ora extinsă
Valoare minimă 100-01-01 00:00:00 0001-01-01 00:00:00
Valoare maximă 9999-12-31 23:59:59.999 9999-12-31 23:59:59.9999999
Precizie 0,001 secunde 1 nanosecundă
Dimensiune Virgulă mobilă cu dublă precizie Șir codificat de 42 de byți

Începutul paginii

Utilizarea tipului de date Extins dată/oră

Următoarele informații descriu considerații importante privind utilizarea.

Vizualizare proiect tabel Pentru a profita de zona de date mai mare și de precizia mai mare, puteți adăuga un câmp la un tabel Access. De asemenea, puteți efectua conversia unui tip de date Dată/Oră la tipul de date Extins dată/oră în vizualizarea Proiect tabel. Se acceptă și utilizarea acestui tip de date drept câmp cheie primară. Pentru mai multe informații, consultați Crearea unui tabel și adăugarea câmpurilor.

Introducerea datei și orei Introducerea valorilor de dată și oră este similară cu tipul de date Dată/Oră, cu excepția faptului că puteți introduce și o nanosecundă fracțională. De exemplu:

  • Format intrare: mm/dd/yyyy hh:mm:ss.nnnnnnn
  • Exemplu: 15.06.1215 09:25:3.234

Dacă există mai mult de 7 nanosecunde fracționare, acestea sunt rotunjite la 7 cifre. Pentru a controla afișarea nanosecundelor fracționare, deschideți Tabel, pe panglică selectați Câmpuri, apoi, în grupul Formatare, selectați Mărire zecimaleimagine buton sau Butonul Micșorare zecimale .

Formatare Tipurile de date Dată/Oră și Dată/Oră Extins utilizează șiruri de formatare standard similare pentru Dată generală, Dată lungă, Dată medie, Dată scurtă, Oră lungă, Oră medie și Oră scurtă , iar ambele acceptă formatarea particularizată. Pentru tipul de date Extins dată/oră, formatele standard bazate pe timp acceptă, de asemenea, precizia fracțională pentru nanosecunde. Formatarea tipului de date Extins dată/oră este implicită la formatele Dată generală și Oră lungă și urmează opțiunile specificate în setările regionale Windows. De asemenea, puteți controla formatarea preciziei fracționare utilizând proprietatea Places zecimale pentru a specifica numărul de cifre de la dreapta virgulei zecimale (1-7).

Legarea și importul De asemenea, puteți să creați o legătură sau să importați din baze de date cu un tip de date corespunzător, cum ar fi tipul de date SQL Server datetime2. SQL Server bazele de date versiunea 2014 sau mai recentă sunt acceptate. Tipul de date Extins dată/oră necesită utilizarea Driverului ODBC Microsoft pentru SQL Server 11 sau o versiune mai recentă. Vă recomandăm să utilizați Microsoft ODBC Driver 13.1 pentru SQL Server. Se acceptă și utilizarea OLE DB. Pentru mai multe informații, consultați Suportul tipului de date pentru îmbunătățirile de dată și oră ODBC și Utilizarea caracteristicilor îmbunătățite pentru dată și oră (OLE DB).

Formulare și rapoarte Puteți adăuga tipul de date Extins dată/oră la un formular sau raport. Într-un formular, puteți utiliza selectorul de dată și masca de intrare pentru a introduce o dată cu intervalul mai mare, dar nu precizia fracționară pentru nanosecunde.

Suport pentru expresii Tipul de date Extins dată/oră acceptă funcțiile agregate SQL și evaluarea expresiilor. De exemplu, utilizarea LoggedDateTime ca câmp cu tipul de date Extins dată/oră:

Activitate Exemplu Rezultat
Găsiți valoarea minimă Min(LoggedDateTime) Cea mai veche dată și oră din interval
Extragerea lunii Month(LoggedDateTime) Numele lunii, cum ar fi ianuarie
Adăugați o zi [LoggedDateTime]+1 Marți va deveni miercuri

Începutul paginii

Considerente de compatibilitate inversă

Tipul de date Extins dată/oră nu este compatibil cu versiunile anterioare de Microsoft Access. Dacă tipul este utilizat într-un tabel Access local, versiunile de Access care nu includ caracteristica nu vor putea deschide baza de date.

Puteți să activați sau să dezactivați tipul de date Extins pentru dată/oră pentru operațiunile de legare și import cu opțiunea Data/ora de suport al opțiunii Curente de acces la baza de dateTipul de date extinse pentru tabelele legate/lmportate. Pentru mai multe informații, consultați Setarea opțiunilor de utilizator pentru baza de date curentă.

Începutul paginii

Utilizarea tipului de date Extins dată/oră ca șir în VBA

Următoarele exemple VBA utilizează metode DAO pentru a afișa, a introduce și a evalua tipul de date Extins pentru dată/oră pe baza tabelului de mai jos.

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

Nume tabel: DTETable
Tip de date ID: Autonumerotare
Tip de date DTEData: Data/ora extinsă
Tip de date DTData: Dată/oră

Exemplu: Afișarea datei și orei

Următorul exemplu afișează data și ora. Formatul utilizat este mm/dd/yyyy hh:mm:ss.nnnnnnn în formatul de 24 de ore. Formatul nu se poate particulariza.


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

Rezultatul Access afișează: 01.01.0002 01:01:03.1234567.

Exemplu: Introducerea datei și orei

Următorul exemplu introduce data și ora utilizând un format de șir. Sunt acceptate toate formatele standard de dată și oră.


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

Rezultatul Access adaugă un rând nou (ID = 2):

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

Exemplu: Evaluarea unei expresii de interogare

Următorul exemplu utilizează funcția Day pentru a extrage numărul zilei din câmpurile dată și oră.


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

Rezultatul Access afișează:

Ziua lunii este: 1
Ziua lunii este: 1

Funcții care funcționează cu Extins dată/oră în expresiile de interogare

Următoarele funcții funcționează cu Extins dată/oră în expresiile de interogare:
​​​​​​​
An, Lună, Zi din săptămână, Zi, Oră, Minut, Al doilea, DateAdd, DateDiff și DatePart.

În plus, există versiuni extinse ale unor funcții care nu pot utiliza tipul de argument pentru a determina că calculul ar trebui să producă o valoare extinsă dată/oră. Acestea sunt:

DateValueExtended, TimeValueExtended, DateSerialExtended, TimeSerialExtended, NowExtended, DateExtended, DateTimeExtended și TimeExtended.

Aceste funcții funcționează la fel ca funcția fără "Extins" la sfârșit, dar returnează o valoare Extins dată/oră, mai degrabă decât o valoare Dată/Oră.

Rețineți că VBA nu a fost modificat, funcțiile noi nu vor fi recunoscute în codul VBA și funcțiile existente nu vor funcționa cu valori extinse dată/oră.

Exemplu

Interogare inițială:


Select DateValue([OrderDate]) AS OrderDateOnly_DateValue

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

From tblOrders

Acum modificați DateValue([OrderDate]) la DateValueExtended([OrderDate]), care va remedia prima expresie.

Rețineți că Access nu gestionează funcția Format pentru coloane extinse dată/oră; puteți seta doar proprietatea Format pentru coloană.

Prin urmare, dacă utilizați:


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

FROM Table1;

Și setați proprietatea Format pentru a doua coloană la "Dată scurtă", veți obține rezultatele dorite.

Începutul paginii

Consultați și

Introducere în tipurile de date și proprietățile câmpurilor

Formatarea unui câmp dată și oră

Crearea sau ștergerea unui câmp dată și oră