Andmetüüp Kuupäev/kellaaeg. Laiendatud andmetüüp talletab kuupäeva- ja kellaajateavet ning sarnaneb andmetüübiga Kuupäev/kellaaeg, kuid pakub suuremat kuupäevavahemikku, suuremat murdtäpsust ja ühilduvust SQL Server datetime2 kuupäevatüübiga. Accessi andmete importimisel või linkimisel SQL Server saate accessi kuupäeva/kellaaja laiendatud välja järjepidevalt vastenduda SQL Server kuupäeva ja kellaaja2 veeruga. Lisateavet leiate teemast datetime2 (Transact-SQL).
Hoiatus! Kui loote Avaldisi ja kasutate Accessis andmetüübi Kuupäeva/kellaaeg laiendatud andmetüübil põhinevaid kuupäeva-/kellaajafunktsioone, võite arvutustes kaotada täpsuse või kogeda muid tulemitega seotud probleeme. Oleme sellest probleemist teadlikud ja plaanime eelseisvas väljaandes avaldisi ja funktsioone paremini toetada. Ajutise lahendusena saate luua läbiva päringu, et kasutada samaväärseid SQL Server avaldise ja kuupäeva-/kellaajafunktsioone. Lisateavet leiate teemast Accessi SQL-i võrdlemine SQL Server TSQL-iga.
Selle artikli teemad
|
Kuupäeva/kellaaja ja kuupäeva/kellaaja laiendatud andmetüüpide võrdlus |
Kuupäeva/kellaaja ja kuupäeva/kellaaja laiendatud andmetüüpide võrdlus
Järgmistes tabelites on kokku võetud olulised erinevused kahe andmetüübi vahel.
|
Atribuut |
Kuupäev/kellaaeg |
Pikendatud kuupäev/kellaaeg |
|---|---|---|
|
Miinimumväärtus |
100-01-01 00:00:00 |
0001-01-01 00:00:00 |
|
Maksimumväärtus |
9999-12-31 23:59:59.999 |
9999-12-31 23:59:59.9999999 |
|
Täpsus |
0,001 sekundit |
1 nanosekundites |
|
Size |
Topelttäpsusega ujukoma |
Kodeeritud string 42 baiti |
Laiendatud andmetüübi Kuupäev/kellaaeg kasutamine
Järgmine teave kirjeldab olulisi kasutuskaalutlusi.
Tabeli kujundusvaade Suurema andmevahemiku ja suurema täpsuse kasutamiseks saate accessi tabelisse lisada välja. Kuupäeva/kellaaja saate teisendada ka laiendatud andmetüübiks Kuupäev/kellaaeg tabeli kujundusvaates. Samuti toetatakse seda andmetüüpi primaarvõtme väljana. Lisateavet leiate teemast Tabeli loomine ja väljade lisamine.
Kuupäeva ja kellaaja sisestamine Kuupäeva- ja kellaajaväärtuste sisestamine sarnaneb andmetüübiga Kuupäev/kellaaeg, välja arvatud see, et saate sisestada ka murdosa nanosekundite. Siin on mõned näited.
-
Kirje vorming: kk/pp/aaaa hh:mm:ss.nnnnnnn
-
Näide: 06/15/1215 09:25:3.234
Kui nanosekundeid on rohkem kui 7, ümardatakse need seitsme kohani. Murdarvuliste nanosekundite kuvamise juhtimiseks avage tabel, valige lindil Väljad ja jaotises Vorming nupp Suurenda kümnendkohti
Vorming Nii andmetüübid Kuupäev/kellaaeg kui ka Kuupäeva/kellaaja laiendatud andmetüübid kasutavad sarnaseid standardvormingustringe üldkuupäev, Pikk kuupäev, Keskmine kuupäev, Lühike kuupäev, Pikk kellaaeg, Keskmine kellaaeg ja Lühike kellaaeg ning mõlemad toetavad kohandatud vormingut. Andmetüübi "Kuupäev/kellaaeg" "Pikendatud" korral toetavad kellaajapõhised standardvormingud ka nanosekundite murdtäpsust. Andmetüübi "Kuupäev/kellaaeg" "Pikendatud" vaikeväärtusteks on "Üldkuupäev" ja "Pikk kellaaeg ", mis järgib Windowsi piirkonnasätetes määratud suvandeid. Murdarvu täpsuse vormingu määramiseks saate kasutada ka atribuuti Decimal Places, et määrata kümnendkohast paremal olevate kohtade arv (1–7).
Linkimine ja importimine Samuti saate linkida vastava andmetüübiga andmebaasidega (nt andmetüübiga SQL Server datetime2) või sealt importida. SQL Server versiooni 2014 või uuemad andmebaasid on toetatud. Andmetüübi "Kuupäev/kellaaeg" pikendamiseks on vaja Kasutada Microsoft ODBC draiverit SQL Server 11 või uuemate versioonide jaoks. Soovitame SQL Server jaoks kasutada Microsoft ODBC Driver 13.1. Samuti toetatakse OLE DB kasutamist. Lisateavet leiate teemast Andmetüübitugi ODBC kuupäeva- ja kellaajatäiustuste jaoks ning Täiustatud kuupäeva- ja kellaajafunktsioonide (OLE DB) kasutamine.
Vormid ja aruanded Vormile või aruandele saate lisada andmetüübi Kuupäeva/kellaaja laiendatud. Vormil saate kuupäevavalija ja sisestusmaski abil sisestada suurema vahemikuga kuupäeva, kuid mitte nanosekundite murdtäpsuse.
Avaldise tugi Kuupäeva/kellaaja laiendatud andmetüüp toetab SQL-kokkuvõttefunktsioone ja avaldise hindamist. Näiteks kui kasutate välja LogiggedDateTime väljana, mille andmetüüp on Pikendatud kuupäev/kellaaeg:
|
Toiming |
Näide |
Tulem |
|---|---|---|
|
Miinimumväärtuse leidmine |
Min(LoggedDateTime) |
Vahemikus olev varaseim kuupäev ja kellaaeg |
|
Kuu ekstraktimine |
Month(LoggedDateTime) |
Kuu nimi (nt jaanuar) |
|
Ühe päeva lisamine |
[LoggedDateTime]+1 |
Teisipäev muutub kolmapäevaks |
Tagasühilduvuse kaalutlused
Pikendatud kuupäeva/kellaaja andmetüüp ei ühildu Microsoft Accessi varasemate versioonidega. Kui seda tüüpi kasutatakse kohalikus Accessi tabelis, ei saa Accessi versioonid, mis seda funktsiooni ei sisalda, andmebaasi avada.
Saate lubada või keelata lingimis- ja importimistoimingute jaoks andmetüübi Kuupäev/kellaaeg, kui kasutate linkimis- ja importimistoiminguid praeguse andmebaasi accessi suvandiga Lingitud/lmportitud tabelite toe kuupäeva/kellaaja laiendatud andmetüüp. Lisateavet leiate teemast Praeguse andmebaasi kasutajasuvandite seadmine.
Andmetüübi "Kuupäev/kellaaeg" kasutamine VBA-s stringina
Järgmised VBA näited kasutavad DAO-meetodeid, et kuvada, sisestada ja hinnata andmetüüpi Pikendatud kuupäev/kellaaeg alloleva tabeli põhjal.
|
ID |
DTEData |
DTData |
|
1 |
1.01.2011:03.1234567 EL |
01.01.2001 |
Tabeli nimi: DTETableID andmetüüp: andmetüüp AutomaatnumberDTEData: andmetüüp Kuupäev/kellaaeg LaiendatudDTData: kuupäev /kellaaeg
Näide: kuupäeva ja kellaaja kuvamine
Järgmises näites on kuvatud kuupäev ja kellaaeg. Kasutatav vorming on kk/pp/aaaa hh:mm:ss.nnnnnnn 24-tunnise kellaga. Vormingut ei saa kohandada.
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
Tulem Access kuvab: 01.01.0002 01:01:03.1234567.
Näide: kuupäeva ja kellaaja sisestamine
Järgmises näites sisestatakse kuupäev ja kellaaeg stringivormingu abil. Kõik standardsed kuupäeva- ja kellaajavormingud on toetatud.
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
Tulem Access lisab uue rea (ID = 2):
|
ID |
DTEData |
DTData |
|
1 |
1.01.2011:03.1234567 EL |
01.01.2001 |
|
2 |
1.01.9999 1:01:01.0123000 EL |
01.01.2001 |
Näide: päringuavaldise hindamine
Järgmises näites kasutatakse funktsiooni Day kuupäeva- ja kellaajaväljadelt päevanumbri ekstraktimiseks.
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
Tulem Access kuvab:
Kuu päev on: 1 Kuu päev on: 1
Funktsioonid, mis töötavad päringuavaldistes laiendatud kuupäeva/kellaajaga
Järgmised funktsioonid töötavad päringuavaldistes laiendatud kuupäeva/kellaajaga. Year, Month, Weekday, Day, Hour, Minute, Second, DateAdd, DateDiff ja DatePart.
Lisaks on mõne funktsiooni laiendatud versioonid, mis ei saa argumendi tüüpi kasutada, et teha kindlaks, kas arvutus peaks andma laiendatud kuupäeva/kellaaja väärtuse. Need on järgmised.
DateValueExtended, TimeValueExtended, DateSerialExtended, TimeSerialExtended, NowExtended, DateExtended, DateTimeExtended ja TimeExtended.
Need funktsioonid toimivad sarnaselt funktsiooniga, mille lõpus pole "Laiendatud", kuid tagastavad väärtuse Kuupäev/kellaaeg, mitte väärtus Kuupäev/kellaaeg.
Pange tähele, et VBA-d pole muudetud, uusi funktsioone ei tuvastata VBA-koodis ja olemasolevad funktsioonid ei tööta pikendatud kuupäeva/kellaaja väärtustega.
Näide
Algne päring:
Select DateValue([OrderDate]) AS OrderDateOnly_DateValue
, Format([OrderDate],"Short Date") AS OrderDateOnly_Format
From tblOrders
Nüüd muutke DateValue([TellimuseKuupäev]) väärtuseks DateValueExtended([OrderDate]), mis lahendab esimese avaldise.
Pange tähele, et Access ei käsitle veergude Date/Time Extended funktsiooni Format; saate lihtsalt määrata veeru atribuudi Vorming.
Seega, kui kasutate:
SELECT DateValueExtended([OrderDate]) AS OrderDateOnly_DateValue, Table1.OrderDate
FROM Table1;
Määrake teise veeru atribuudi Vorming väärtuseks "Lühike kuupäev", saate soovitud tulemid.
Vt ka
Andmetüüpide ja väljaatribuutide tutvustus