Uporaba razširjenega podatkovnega tipa »Datum/čas«

Velja za
Access za Microsoft 365 Access 2024 Access 2021

Razširjeni podatkovni tip »Datum/čas« shranjuje podatke o datumu in času in je podoben podatkovnem tipu »Datum/čas«, vendar zagotavlja večji datumski obseg, višjo natančnost ulomka in združljivost z vrsto datuma SQL Server datetime2. Ko uvozite Accessove podatke ali jih povežete z SQL Server, lahko polje »Razširjeni datum/čas« Accessa dosledno preslikate SQL Server stolpec »datetime2«. Če želite več informacij, glejte datum in čas2 (Transact-SQL).

Razširjeni obseg datuma/časa Opozorilo Ko ustvarite izraze in uporabite funkcije za datum/čas na podlagi podatkovnega tipa »Datum/čas« v Accessu, lahko izgubite natančnost pri izračunih ali naletite na druge težave z rezultati. O tej težavi smo že seznanjeni in načrtujemo boljšo podporo izrazov in funkcij v prihodnji izdaji. Kot nadomestno rešitev lahko ustvarite prepustno poizvedbo, če želite uporabiti enakovredne SQL Server izraz in datum/čas. Če želite več informacij, glejte Primerjava strežnika Access SQL SQL Server TSQL.

V tem članku

Primerjava razširjenih podatkovnih tipov »Datum/ura« in »Datum/čas« Uporaba razširjenega podatkovnega tipa »Datum/čas« Pomisleki glede združljivosti s starejšimi različicami Uporaba razširjenega podatkovnega tipa »Datum/čas« kot niza v kodi VBA

Primerjava razširjenih podatkovnih tipov »Datum/ura« in »Datum/čas«

V teh tabelah so povzete pomembne razlike med dvema podatkovnima vrstama.

Atribut Datum/čas Podaljšan datum/čas
Najmanjša vrednost 100-01-01 00:00:00 0001-01-01 00:00:00
Največja vrednost 9999-12-31 23:59:59.999 9999-12-31 23:59:59.9999999
Natančnost 0,001 sekunde 1 nanosekunda
Size Plavajoča vejica z dvojno natančnostjo Kodiran niz 42 bajtov

Na vrh strani

Uporaba razširjenega podatkovnega tipa »Datum/čas«

V teh informacijah so opisani pomembni pomisleki glede uporabe.

Pogled načrta tabele Če želite izkoristiti večji obseg podatkov in večjo natančnost, lahko dodate polje v Accessovo tabelo. Datum/čas lahko pretvorite tudi v razširjeni podatkovni tip »Datum/čas« v pogledu načrta tabele. Podprta je tudi uporaba tega podatkovnega tipa kot polja s primarnim ključem. Če želite več informacij, glejte Ustvarjanje tabele in dodajanje polj.

Vnašanje datuma in časa Vnos vrednosti datuma in ure je podoben podatkovnem tipu »Datum/čas«, le da lahko vnesete tudi ulomek nanosekunde. Primer:

  • Oblika vnosa: mm/dd/yyyy hh:mm:ss.nnnnnnn
  • Primer: 06/15/1215 09:25:3.234

Če je več kot 7 ulomkov nanosekund, so zaokrožene na 7 števk. Če želite nadzirati prikaz ulomkov nanosekund, odprite tabelo, na traku izberite Polja in v skupini Oblikovanje izberite Povečaj število decimalnih mest Slika gumba ali Zmanjšaj število decimalnih mest.

Oblikovanje Tako podatkovni tipi »Datum/ura« kot »Datum/čas« in »Datum/čas« uporabljajo podobne standardne nize oblikovanja za »Splošen datum«, »Dolga oblika datuma«, »Skrajšana oblika datuma«, »Kratka oblika datuma«, »Dolga oblika ure« in »Skrajšana ura« ter obe podpirata oblikovanje po meri. Za razširjeni podatkovni tip »Datum/čas« standardne oblike, ki temeljijo na času, podpirajo tudi necelično natančnost za nanosekunde. Oblikovanje razširjenega podatkovnega tipa »Datum/čas« je privzeto splošno obliko zapisa datuma in dolge ure ter upošteva možnosti, določene v področnih nastavitvah sistema Windows. Oblikovanje natančnosti ulomka lahko nadzorujete tudi z lastnostjo Decimalni Places, da določite število števk na desni strani decimalne vejice (1–7).

Povezovanje in uvoz Ustvarite lahko tudi povezavo do zbirke podatkov ali pa jo uvozite iz njih z ustreznim podatkovnega tipa, kot je SQL Server podatkovni tip »datumčas2«. SQL Server podprte zbirke podatkov različice 2014 ali novejše. Za razširjeni podatkovni tip »Datum/čas« potrebujete gonilnik Microsoft ODBC za SQL Server 11 ali novejšo različico. Priporočamo, da uporabite gonilnik Microsoft ODBC 13.1 za SQL Server. Podprta je tudi uporaba ole DB. Če želite več informacij, glejte Podpora za vrste podatkov za izboljšave datuma in časa ODBC in Uporaba izboljšanih funkcij datuma in časa (OLE DB).

Obrazci in poročila Podatkovni tip Razširjeni datum/čas lahko dodate v obrazec ali poročilo. V obrazcu lahko z izbirnikom datuma in vnosno masko vnesete datum z večjim obsegom, ne pa tudi natančnosti ulomka za nanosekunde.

Podpora za izraze Razširjeni podatkovni tip »Datum/čas« podpira združevalne funkcije SQL in vrednotenje izrazov. Če na primer uporabite LoggedDateTime kot polje z vrsto podatkov »Datum/čas razširjeno«:

Opravilo Primer Rezultat
Iskanje najmanjše vrednosti Min(LoggedDateTime) Najzgodnejši datum in ura v obsegu
Izvlečenje meseca Month(LoggedDateTime) Ime meseca, na primer januar
Dodaj en dan [LoggedDateTime]+1 torek bi postal sreda

Na vrh strani

Pomisleki glede združljivosti s starejšimi različicami

Podatkovni tip Razširjeni datum/čas ni združljiv s starejšimi različicami Microsoft Accessa. Če je ta vrsta uporabljena v lokalni Accessovi tabeli, različice Accessa, ki ne vključujejo funkcije, ne bodo mogli odpreti zbirke podatkov.

Razširjeni podatkovni tip »Datum/čas« lahko omogočite ali onemogočite za postopke povezovanja in uvoza z možnostjo »Trenutni dostop do zbirke podatkov« podpira razširjen podatkovni tip »Datum/čas« za povezane/lmportne tabele. Če želite več informacij, glejte Nastavljanje možnosti uporabnika za trenutno zbirko podatkov.

Na vrh strani

Uporaba razširjenega podatkovnega tipa »Datum/čas« kot niza v kodi VBA

Ti primeri vba uporabljajo metode DAO za prikaz, vnos in oceno razširjenega podatkovnega tipa »Datum/čas« na podlagi spodnje tabele.

ID DTEData DTData
1 1.1.2 1:01:03.1234567 1/1/2001

Ime tabele: DTETable (Tabela DTE)
Podatkovni tip ID:: Samoštevilčno
Podatkovni tip DTEData: Podaljšan datum/čas
Podatkovni tip DTData: Datum/čas

Primer: Displaying the date and time

V spodnjem primeru sta prikazana datum in ura. Uporabljena oblika zapisa je mm/dd/llll hh:mm:ss.nnnnnnn v 24-urni obliki. Oblike zapisa ni mogoče prilagoditi.


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

Rezultat Access prikaže: 01/01/0002 01:01:03.1234567.

Primer: Entering the date and time

V tem primeru sta datum in ura vneti z obliko zapisa niza. Podprte so vse standardne oblike zapisa datuma in časa.


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

Rezultat Access doda novo vrstico (ID = 2):

ID DTEData DTData
1 1.1.2 1:01:03.1234567 1/1/2001
2 1.1.9999 1:01:01.0123000 1/1/2001

Primer: Ocenjevanje izraza poizvedbe

V tem primeru je funkcija Day uporabljena za izvlečenje številke dneva iz polj z datumom in uro.


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

Rezultat Access prikaže:

Dan v mesecu je: 1
Dan v mesecu je: 1

Funkcije, ki delujejo z razširjenim datumom/časom v izrazih poizvedbe

Te funkcije delujejo z razširjenim datumom/časom v izrazih poizvedbe:
​​​​​​​
Year, Month, Weekday, Day, Hour, Minute, Second, DateAdd, DateDiff in DatePart.

Poleg tega so na voljo razširjene različice nekaterih funkcij, ki ne omogočajo uporabe vrste argumenta, s katero bi določili, da bi izračun moral vsebovati razširjeno vrednost »Datum/čas«. To so:

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

Te funkcije delujejo na enak način kot funkcija brez »Razširjeno«, vendar vrnejo razširjeno vrednost »Datum/čas« in ne vrednosti »Datum/čas«.

Upoštevajte, da vba ni bil spremenjen, nove funkcije v kodi VBA ne bodo prepoznane in obstoječe funkcije ne bodo delovale z razširjenimi vrednostmi za datum/čas.

Primer

Izvirna poizvedba:


Select DateValue([OrderDate]) AS OrderDateOnly_DateValue

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

From tblOrders

Zdaj spremenite DateValue([DatumNaročila]) v DateValueExtended([DatumNaročila]), s katerim boste odpravili prvi izraz.

Upoštevajte, da Access ne obravnava funkcije Format za razširjene stolpce datum/čas; za stolpec lahko preprosto nastavite lastnost Oblika.

Če torej uporabljate:


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

FROM Table1;

Lastnost Oblika za drugi stolpec nastavite na »Kratki datum«, da dobite želene rezultate.

Na vrh strani

Glejte tudi

Uvod v podatkovne tipe in lastnosti polj

Oblikovanje polja za datum in čas

Ustvarjanje ali brisanje polja za datum in čas