Datos / laiko išplėstinių duomenų tipo naudojimas

Taikoma
„Access“, skirta „Microsoft 365“ „Access 2024“ Access 2021

Datos / laiko išplėstinis duomenų tipas saugo datos ir laiko informaciją ir yra panašus į datos / laiko duomenų tipą, tačiau suteikia didesnį datos diapazoną, didesnį trupmeninį tikslumą ir suderinamumą su „SQL Server“ datetime2 datos tipu. Kai importuojate arba susiejate "Access" duomenis su "„SQL Server“", galite nuosekliai susieti "Access" lauką "Date/Time Extended" su stulpeliu "„SQL Server“ datetime2". Daugiau informacijos žr. datetime2 (Transact-SQL).

Data / laikas Išplėstinio diapazono įspėjimas Kai kuriate reiškinius ir naudojate datos / laiko funkcijas pagal datos / laiko išplėstinių duomenų tipą programoje "Access", galite prarasti skaičiavimų tikslumą arba susidurti su kitomis rezultatų problemomis. Žinome apie šią problemą ir būsimame leidime planuojame geriau palaikyti reiškinius ir funkcijas. Kaip sprendimą galite sukurti tiesioginę užklausą, kad galėtumėte naudoti lygiavertes „SQL Server“ išraiškos ir datos / laiko funkcijas. Daugiau informacijos rasite "Access SQL" palyginimas su "„SQL Server“ TSQL".

Šiame straipsnyje:

Datos / laiko ir datos / laiko išplėstinių duomenų tipų palyginimas Datos / laiko išplėstinių duomenų tipo naudojimas Atgalinio suderinamumo aspektai Datos / laiko išplėstinių duomenų tipo naudojimas kaip eilutės VBA

Datos / laiko ir datos / laiko išplėstinių duomenų tipų palyginimas

Toliau pateiktose lentelėse apibendrinami svarbūs skirtumai tarp dviejų duomenų tipų.

Atributas Data / laikas Pratęsimo data / laikas
Minimali reikšmė 100-01-01 00:00:00 0001-01-01 00:00:00
Maksimali reikšmė 9999-12-31 23:59:59.999 9999-12-31 23:59:59.9999999
Tikslumas 0,001 sekundės 1 nanosekundė
Dydis Dvigubo tikslumo slankusis kablelis Užkoduota 42 baitų eilutė

Puslapio viršus

Datos / laiko išplėstinių duomenų tipo naudojimas

Toliau pateikiama informacija apie svarbius naudojimo aspektus.

Table Design View Norėdami pasinaudoti didesniu duomenų diapazonu ir didesniu tikslumu, galite įtraukti lauką į "Access" lentelę. Taip pat lentelės dizaino rodinyje galite konvertuoti datą / laiką į datos / laiko išplėstinių duomenų tipą. Šio tipo duomenų naudojimas kaip pirminio rakto lauko taip pat palaikomas. Daugiau informacijos rasite Lentelės kūrimas ir laukų įtraukimas.

Datos ir laiko įvedimas Datos ir laiko reikšmių įvedimas yra panašus į datos / laiko duomenų tipą, išskyrus tai, kad taip pat galite įvesti trupmeninę nanosekundę. Pavyzdžiui:

  • Įrašo formatas: mm/dd/yyyy hh:mm:ss.nnnnnnn
  • Pavyzdys: 06/15/1215 09:25:3.234

Jei yra daugiau nei 7 trupmeninės nanosekundės, jos suapvalinamos iki 7 skaitmenų. Norėdami valdyti trupmeninių nanosekundžių rodymą, atidarykite lentelę, juostelėje pasirinkite Laukai ir grupėje Formatavimas pasirinkite Mygtuko Didinti dešimtaines dalisarbaMažinti dešimtainių skaičių mygtukovaizdą .

Formatavimas Tiek datos / laiko, tiek datos / laiko išplėstinių duomenų tipuose naudojamos panašios standartinės formatavimo eilutės: Bendroji data, Ilgoji data, Vidutinė data, Trumpoji data, Ilgasis laikas, Vidutinis laikas ir Trumpasis laikas , ir abu palaiko pasirinktinį formatavimą. Išplėstinio datos / laiko duomenų tipo laiku pagrįsti standartiniai formatai taip pat palaiko dalinį tikslumą nanosekundėmis. Datos / laiko išplėstinių duomenų tipo formatavimas pagal numatytuosius parametrus yra bendrosios datos ir ilgojo laiko formatai ir taikomos parinktys, nurodytos "Windows" regiono parametruose. Taip pat galite valdyti trupmeninio tikslumo formatavimą naudodami ypatybę Decimal Places, kad nurodytumėte skaitmenų skaičių į dešinę nuo dešimtainio kablelio (1–7).

Susiejimas ir importavimas Taip pat galite susieti arba importuoti iš duomenų bazių su atitinkamu duomenų tipu, pvz., „SQL Server“ datetime2 duomenų tipu. Palaikomos 2014 m. arba naujesnės versijos „SQL Server“ duomenų bazės. Datos / laiko pratęsimo duomenų tipui reikia naudoti "„Microsoft“" ODBC tvarkyklę, skirtą "„SQL Server“ 11" arba naujesnei versijai. Rekomenduojame naudoti "„Microsoft“" ODBC tvarkyklę 13.1, skirtą „SQL Server“. Taip pat palaikomas OLE DB naudojimas. Daugiau informacijos žr. Duomenų tipo palaikymas ODBC datos ir laiko patobulinimams ir Išplėstinių datos ir laiko funkcijų (OLE DB) naudojimas.

Formos ir ataskaitos Galite įtraukti duomenų tipą Išplėstinė data / laikas į formą arba ataskaitą. Formoje galite naudoti datos parinkiklį ir įvesties šabloną, kad įvestumėte datą su didesniu diapazonu, bet ne trupmeniniu nanosekundžių tikslumu.

Reiškinių palaikymas Datos / laiko išplėstinių duomenų tipas palaiko SQL agregavimo funkcijas ir reiškinio vertinimą. Pavyzdžiui, naudojant LoggedDateTime kaip lauką su datos/laiko išplėstinių duomenų tipu:

Užduotis Pavyzdys Rezultatas
Mažiausios reikšmės radimas Min(LoggedDateTime) Anksčiausia intervalo data ir laikas
Mėnesio išskleidimas Month(LoggedDateTime) Mėnesio pavadinimas, pvz., sausis
Įtraukti vieną dieną [LoggedDateTime]+1 Antradienis taptų trečiadieniu

Puslapio viršus

Atgalinio suderinamumo aspektai

Datos / laiko pratęsimo duomenų tipas nesuderinamas su ankstesnėmis "Microsoft Access" versijomis. Jei tipas naudojamas vietinėje "Access" lentelėje, "Access" versijos, kuriose ši funkcija neapima, duomenų bazės atidaryti negalės.

Galite įjungti arba išjungti datos / laiko išplėstinių duomenų tipą susiejimo ir importavimo operacijoms naudodami dabartinės duomenų bazės prieigos parinktį Palaikyti datos / laiko išplėstinių duomenų tipą, skirtą susietoms / lmportuotoms lentelėms. Daugiau informacijos rasite Vartotojo parinkčių dabartinei duomenų bazei nustatymas.

Puslapio viršus

Datos / laiko išplėstinių duomenų tipo naudojimas kaip eilutės VBA

Tolesniuose VBA pavyzdžiuose naudojami DAO metodai, siekiant parodyti, įvesti ir įvertinti išplėstinės datos / laiko duomenų tipą pagal toliau pateiktą lentelę.

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

Lentelės pavadinimas: Galima DTETuoti
ID duomenų tipas: Automatinis numeravimas
DTEData duomenų tipas: Pratęsimo data / laikas
DTData duomenų tipas: Data / laikas

Pavyzdys: datos ir laiko rodymas

Šiame pavyzdyje rodoma data ir laikas. Naudojamas formatas mm/dd/MMMM hh:mm:ss.nnnnnnnn 24 valandų formatu. Formato tinkinti negalima.


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

Rezultatas Prieiga rodo: 01/01/0002 01:01:03.1234567.

Pavyzdys: datos ir laiko įvedimas

Toliau pateiktame pavyzdyje data ir laikas įvedami naudojant eilutės formatą. Palaikomi visi standartiniai datos ir laiko formatai.


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

Rezultatas "Access" įtraukia naują eilutę (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

Pavyzdys: užklausos išraiškos įvertinimas

Toliau pateiktame pavyzdyje naudojama dienos funkcija dienos skaičiui iš datos ir laiko laukuose gauti.


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

Rezultatas Programa Access rodo:

Mėnesio diena yra: 1
Mėnesio diena yra: 1

Funkcijos, veikiančios su užklausų išraiškose išplėsta data / laiku

Šios funkcijos veikia su datos / laiko pratęsimu užklausų išraiškose:
​​​​​​​
Metai, mėnuo, savaitės diena, diena, valanda, minutė, sekundė, DateAdd, DateDiff ir DatePart.

Be to, yra kai kurių funkcijų išplėstinių versijų, kurios negali naudoti argumento tipo norint nustatyti, kad skaičiavimas turėtų pateikti datos / laiko išplėstinę reikšmę. Tai yra:

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

Šios funkcijos veikia taip pat, kaip funkcija be "Išplėstinis" pabaigoje, tačiau pateikia datos / laiko pratęsimo reikšmę, o ne datos / laiko reikšmę.

Atkreipkite dėmesį, kad VBA nebuvo modifikuota, naujos funkcijos nebus atpažįstamos VBA kode ir esamos funkcijos neveiks su datos / laiko išplėstinėmis reikšmėmis.

Pavyzdys

Pradinė užklausa:


Select DateValue([OrderDate]) AS OrderDateOnly_DateValue

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

From tblOrders

Dabar pakeiskite DateValue([UžsakymoData]) į DateValueExtended([UžsakymoData]), taip pataisysite pirmąjį reiškinį.

Atkreipkite dėmesį, kad "Access" neapdoroja datos / laiko išplėstinių stulpelių formatavimo funkcijos; galite tiesiog nustatyti stulpelio ypatybę Formatas.

Todėl, jei naudojate:


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

FROM Table1;

Ir nustatykite antrojo stulpelio ypatybę Formatas į "Trumpoji data", gausite norimus rezultatus.

Puslapio viršus

Taip pat žr.

Įvadas į duomenų tipus ir laukų ypatybes

Datos ir laiko lauko formatavimas

Datos ir laiko lauko kūrimas arba naikinimas