Podatkovni tip »Date/Time Extended shranjuje podatke o datumu in času« ter je podoben podatkovnemu tipu »Date/Time«, vendar zagotavlja večji časovni obseg, večjo natančnost delkov in združljivost z vrsto datuma »»Datetime« strežnika SQL Server datetime2. Ko uvozite ali povežete Accessove podatke s strežnikom SQL Server, lahko dosledno preslikate polje Accessov datum/čas razširjeno v stolpec SQL Server datetime2. Če želite več informacij, glejte datetime2 (Transact-SQL).
Opozorilo Ko ustvarite izraze in uporabljate funkcije datuma/časa, ki temeljijo na podatkovnem tipu Razširjeno datum/čas v Accessu, lahko izgubite natančnost izračunov ali naletite na druge težave z rezultati. Zavedamo se te težave in načrtujemo boljšo podporo izrazom in funkcijam v prihodnji izdaji. Kot nadomestno rešitev lahko ustvarite posredno poizvedbo za uporabo enakovrednih izrazov SQL Server in funkcij datuma/časa. Če želite več informacij, glejte Primerjava programa Access SQL s strežnikom SQL Server TSQL.
V tem članku
Primerjava razširjenih podatkovnih tipov »Datum/čas« in »Datum/čas«
V spodnjih tabelah so povzete pomembne razlike med obema podatkovnima tipoma.
| 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 | Dvojna natančnost plavajoča vejica | Kodirani niz 42 bajtov |
Uporaba podatkovnega tipa »Razširjeni datum/čas«
V spodnjih 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. Podatkovni tip »Datum/čas« lahko pretvorite tudi v podatkovni tip »Datum/ura razširjen« v pogledu načrta tabele. Podprta je tudi uporaba tega podatkovnega tipa kot polja primarnega ključa. Če želite več informacij, glejte Ustvarjanje tabele in dodajanje polj.
Vnos datuma in časa Vnos vrednosti datuma in časa je podoben podatkovnemu tipu Datum/čas, le da lahko vnesete tudi delček nanosekunde. Primer:
- Oblika vnosa: mm/dd/llllh hh:mm:ss.nnnnnnn
- Primer: 15.06.1215 09:25:3.234
Če je več kot 7 delnih nanosekund, se zaokrožijo na 7 števk. Če želite nadzorovati prikaz delnih nanosekund, odprite tabelo, na traku izberite Polja in v skupini Oblikovanje izberite Povečaj decimalke
ali Zmanjšaj decimalke
.
Oblikovanje Podatkovni vrsti »Datum/čas« in »Date/Time Extended uporabljata podobne standardne nize oblikovanja« »Splošni datum«, »Dolgi datum«, »Srednji datum«, »Srednji datum«, »Kratek datum«, »Kratek datum«, »Dolg čas«, »Kratek čas« in »Kratek čas«, oba pa podpirata oblikovanje po meri. Za podatkovni tip Date/Time Extended standardni formati, ki temeljijo na času, podpirajo tudi delno natančnost za nanosekunde. Pri oblikovanju podatkovnega tipa »Date/Time Extended so privzeto oblikovane oblike zapisa » Splošni datum « in »Dolgi čas « ter sledijo možnostim, določenim v področnih nastavitvah sistema Windows. Oblikovanje natančnosti ulomkov lahko nadzirate tudi tako, da z lastnostjo Decimal Places določite število števk desno od decimalne vejice (1–7).
Povezovanje in uvoz Prav tako lahko povežete z zbirkami podatkov z ustreznim podatkovnim tipom, kot je podatkovni tip SQL Server datetime2, ali jih uvozite iz njih. Podprte so zbirke podatkov SQL Server različice 2014 ali novejše. Podatkovni tip »Date/Time Extended »Date/Time« zahteva uporabo gonilnika Microsoft ODBC za SQL Server 11 ali novejšo različico. Priporočamo uporabo gonilnika Microsoft ODBC 13.1 za SQL Server. Podprta je tudi uporaba OLE DB. Če želite več informacij, glejte Podpora za podatkovne tipe 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 uporabite izbirnik datuma in vnosno masko, da vnesete datum z večjim obsegom, ne pa tudi z delno natančnostjo za nanosekunde.
Podpora za izraze Podatkovni tip »Date/Time Extended (Razširjeni datum/čas) podpira združevalne funkcije SQL in vrednotenje izrazov. Če na primer uporabite »LoggedDateTime« kot polje s podatkovnim tipom »Date/Time Extended «:
| Opravilo | Primer | Rezultat |
|---|---|---|
| Iskanje najmanjše vrednosti | Min(zabeleženDatumČas) | Najzgodnejši datum in čas v obsegu |
| Izvlecite mesec | Month(LoggedDateTime) | Ime meseca, na primer januar |
| Dodaj en dan | [DnevnikDatumČas]+1 | Torek bi postal sreda |
Pomisleki glede združljivosti s starejšimi različicami
Podatkovni tip »Date/Time Extended »Date/Time« ni združljiv s prejšnjimi različicami Microsoft Accessa. Če je vrsta uporabljena v lokalni Accessovi tabeli, različice Accessa, ki ne vključujejo te funkcije, ne bodo mogle odpreti zbirke podatkov.
Podatkovni tip »Date/Time Extended »Date/Time« za postopke povezovanja in uvoza lahko omogočite ali onemogočite z možnostjo »Trenutni dostop do zbirke podatkov « Podpora »Date/Time« Extended Data Type (Razširjeni datum/čas) za postopke povezovanja/uvoza podatkov. Če želite več informacij, glejte Nastavljanje možnosti uporabnika za trenutno zbirko podatkov.
Uporaba podatkovnega tipa Date/Time Extended kot niza v VBA
Naslednji primeri VBA uporabljajo metode DAO za prikaz, vnos in ovrednotenje podatkovnega tipa Date/Time Extended na podlagi spodnje tabele.
| ID | DTEData | DTData |
|---|---|---|
| 1 | 1/1/2 1:01:03.1234567 AM | 1/1/2001 |
Ime tabele: DTETable
Podatkovni tip ID: Samodejno oštevilčenje
Podatkovni tip DTEData: Podaljšan datum/čas
Podatkovni tip DTData: Datum/čas
Primer: Prikaz datuma in časa
V tem primeru sta prikazana datum in čas. Uporabljena oblika je mm/dd/llll, hh:mm:ss.nnnnnnn v 24-urni uri. 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 Dostopni zasloni: 01/01/0002 01:01:03.1234567.
Primer: Vnos datuma in časa
V tem primeru vnesete datum in uro z obliko 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 AM | 1/1/2001 |
| 2 | 1.1.9999 1:01:01.0123000 AM | 1/1/2001 |
Primer: Vrednotenje izraza poizvedbe
V spodnjem primeru je uporabljena funkcija Dan za ekstrahiranje številke dneva iz polj datuma in časa.
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 Accessovi prikazi:
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:
Leto, mesec, delovni dan, dan, ura, minuta, sekunda, DateAdd, DateDiff in DatePart.
Poleg tega obstajajo razširjene različice nekaterih funkcij, ki ne morejo uporabiti vrste argumenta, da bi določile, ali naj izračun ustvari razširjeno vrednost datuma/časa. To so:
DateValueExtended, TimeValueExtended, DateSerialExtended, TimeSerialExtended, NowExtended, DateExtended, DateTimeExtended in TimeExtended.
Te funkcije delujejo na enak način kot funkcija brez možnosti »Razširjeno« na koncu, vendar vrnejo razširjeno vrednost »Date/Time« namesto vrednosti »Date/Time«.
Upoštevajte, da VBA ni bila spremenjena, nove funkcije ne bodo prepoznane v kodi VBA in obstoječe funkcije ne bodo delovale z razširjenimi vrednostmi datuma in časa.
Primer
Izvirna poizvedba:
Select DateValue([OrderDate]) AS OrderDateOnly_DateValue
, Format([OrderDate],"Short Date") AS OrderDateOnly_Format
From tblOrders
Zdaj spremenite DateValue([OrderDate]) v DateValueExtended([OrderDate]), kar bo popravilo prvi izraz.
Upoštevajte, da Access ne obravnava funkcije »Oblika« za stolpce »Date/Time Extended «. lahko preprosto nastavite lastnost Oblika za stolpec.
Torej, če uporabljate:
SELECT DateValueExtended([OrderDate]) AS OrderDateOnly_DateValue, Table1.OrderDate
FROM Table1;
In nastavite lastnost Oblika za drugi stolpec na »Kratek datum«, dobili boste želene rezultate.
Glejte tudi
Uvod v podatkovne tipe in lastnosti polj