Proširena vrsta podataka Datum/vrijeme pohranjuje informacije o datumu i vremenu i slična je vrsti podataka Datum/vrijeme, ali nudi veći raspon datuma, veću preciznost razlomaka i kompatibilnost s vrstom datuma datuma datuma i vremena sustava SQL Server. Kada uvozite podatke programa Access ili ih povezujete sa sustavom SQL Server, polje Prošireno datum/vrijeme programa Access možete dosljedno mapirati u stupac datuma i vremena2 sustava SQL Server. Dodatne informacije potražite u članku datetime2 (Transact-SQL).
Upozorenje Kada stvorite izraze i koristite funkcije datuma/vremena utemeljene na proširenoj vrsti podataka datum/vrijeme u programu Access, mogli biste izgubiti preciznost u izračunima ili naići na druge probleme s rezultatima. Znamo za taj problem i planiramo poboljšati podršku za izraze i funkcije u jednom od sljedećih izdanja. Kao zaobilazno rješenje možete stvoriti prolazni upit koji će koristiti ekvivalentne funkcije izraza SQL Server i datuma/vremena. Dodatne informacije potražite u članku Usporedba programa Access SQL sa servisom SQL Server TSQL.
Sadržaj članka
Usporedba proširenih vrsta podataka Datum/vrijeme i Datum/vrijeme
U sljedećoj su tablici na sažetak navedene važne razlike između dviju vrsta podataka.
| Atribut | Datum/vrijeme | Datum/vrijeme prošireno |
|---|---|---|
| Minimalna vrijednost | 100-01-01 00:00:00 | 0001-01-01 00:00:00 |
| Maksimalna vrijednost | 9999-12-31 23:59:59.999 | 9999-12-31 23:59:59.9999999 |
| Točnost | 0,001 sekundi | 1 nanosekunda |
| Size | Pomična točka dvostruke preciznosti | Kodirani niz od 42 bajta |
Korištenje vrste podataka Datum/vrijeme prošireno
U sljedećim se informacijama opisuju važne napomene o korištenju.
Table Design View Da biste iskoristili veći raspon podataka i veću preciznost, polje možete dodati u tablicu programa Access. U prikazu dizajna tablice vrstu podataka Datum/vrijeme možete pretvoriti u proširenu vrstu podataka Datum/vrijeme. Podržano je i korištenje te vrste podataka kao polja primarnog ključa. Dodatne informacije potražite u članku Stvaranje tablice i dodavanje polja.
Unos datuma i vremena Unos vrijednosti datuma i vremena sličan je vrsti podataka Datum/vrijeme, osim što možete unijeti i decimalnu nanosekundu. Na primjer:
- Oblik unosa: mm/dd/gggg hh:mm:ss.nnnnnnn
- Primjer: 06/15/1215 09:25:3.234
Ako postoji više od 7 decimalnih nanosekundi, one se zaokružuju na 7 znamenki. Da biste kontrolirali prikaz nanosekunda razlomka, otvorite tablicu, na vrpci odaberite Polja pa u grupi Oblikovanje odaberite Povećaj broj decimalnih mjesta Slika
ili Smanjenje broja decimalnih mjesta
.
Oblikovanje Proširene vrste podataka Datum/vrijeme i Datum/vrijeme koriste slične standardne nizove oblikovanja kao što su Opći datum, Dugi datum, Srednji datum, Kratki datum, Dugo vrijeme, Srednje vrijeme i Kratko vrijeme i obje podržavaju prilagođeno oblikovanje. Za vrstu podataka Date/Time Extended standardni oblici koji se temelje na vremenu također podržavaju preciznost razlomaka za nanosekunde. Oblikovanje proširene vrste podataka Datum/vrijeme po zadanom se koristi na općenite oblike datuma i dugog vremena te slijedi mogućnosti navedene u regionalnim postavkama sustava Windows. Oblikovanjem točnosti razlomka možete kontrolirati i tako da pomoću svojstva Decimal Places odredite broj znamenki desno od decimalnog zareza (od 1 do 7).
Povezivanje i uvoz Možete je i povezivati s bazama podataka s odgovarajućom vrstom podataka, kao što je vrsta podataka datetime2 SQL Server-a, ili je pak uvoziti iz njih. Podržane su baze podataka SQL Server verzije 2014 ili novije. Vrsta podataka Prošireni datum i vrijeme zahtijeva korištenje Microsoft ODBC upravljačkog programa za SQL Server 11 ili noviji. Preporučujemo korištenje Microsoft ODBC upravljačkog programa 13.1 za SQL Server. Podržano je i korištenje baze OLE DB. Dodatne informacije potražite u članku Podrška za vrste podataka za poboljšanja ODBC datuma i vremena i korištenje poboljšanih značajki datuma i vremena (OLE DB).
Obrasci i izvješća Vrstu podataka Prošireni datum/vrijeme možete dodati u obrazac ili izvješće. U obrascu možete koristiti birač datuma i masku za unos da biste unijeli datum s većim rasponom, ali ne i preciznošću za razlomke za nanosekunde.
Podrška za izraze Vrsta podataka Date/Time Extended podržava SQL funkcije zbrajanja i procjenu izraza. Na primjer, korištenje LoggedDateTime kao polja s proširenom vrstom podataka Datum/vrijeme:
| Zadatak | Primjer | Rezultat |
|---|---|---|
| Traženje minimalne vrijednosti | Min(LoggedDateTime) | Najraniji datum i vrijeme unutar raspona |
| Izdvajanje mjeseca | Month(LoggedDateTime) | naziv mjeseca, na primjer siječanj |
| Dodaj jedan dan | [LoggedDateTime]+1 | Utorak će postati srijeda |
Pitanja povezana s kompatibilnosti s prijašnjim verzijama
Vrsta podataka Prošireni datum/vrijeme nije kompatibilna sa starijim verzijama programa Microsoft Access. Ako se ta vrsta koristi u lokalnoj tablici programa Access, verzije programa Access koje ne sadrže tu značajku neće moći otvoriti bazu podataka.
Možete omogućiti ili onemogućiti vrstu podataka Datum/vrijeme Prošireno za radnje povezivanja i uvoza pomoću mogućnosti Trenutna baza podatakaPristup Podrška za proširenu vrstu podataka Datum/vrijeme za povezane tablice. Da biste saznali više, pročitajte članak Postavljanje korisničkih mogućnosti za trenutnu bazu podataka.
Korištenje vrste podataka Date/Time Extended kao niza u VBA kodu
U primjerima u nastavku VBA koriste se metode DAO za prikaz, unos i procjenu vrste podataka Prošireni datum/vrijeme na temelju tablice u nastavku.
| ID | DTEData | DTData |
|---|---|---|
| 1 | 1/1/2 1:01:03.1234567 AM | 1. 1. 2001. |
Naziv tablice: DTETable
Vrsta podataka ID-a: Automatsko numeriranje
Vrsta podataka DTEData: Datum/vrijeme prošireno
Vrsta podataka DTData: Datum/vrijeme
Primjer: prikaz datuma i vremena
U sljedećem se primjeru prikazuju datum i vrijeme. Korišteni oblik je mm/dd/gggg hh:mm:ss.nnnnnnn u 24-satnom obliku. Oblik nije prilagodljiv.
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 Pristupni zasloni: 01/01/0002 01:01:03.1234567.
Primjer: unos datuma i vremena
U sljedećem se primjeru datum i vrijeme unose pomoću oblika niza. Podržani su svi standardni oblici datuma i vremena.
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 će dodati novi redak (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. |
Primjer: Procjena izraza upita
U sljedećem se primjeru koristi funkcija Day za izdvajanje broja dana iz polja datuma i vremena.
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 Prikazi u programu Access:
Dan u mjesecu: 1
Dan u mjesecu: 1
Funkcije koje funkcioniraju s proširenim parametrom Datum/vrijeme u izrazima upita
Sljedeće funkcije funkcioniraju s proširenim datumom/vremenom u izrazima upita:
Godina, mjesec, dan u tjednu, dan, sat, minuta, sekunda, dodajDateAdd, DateDiff i DatePart.
Osim toga, postoje proširene verzije nekih funkcija koje ne mogu koristiti tu vrstu argumenta za određivanje hoće li izračun dati vrijednost proširenog datuma/vremena. To su:
DateValueExtended, TimeValueExtended, DateSerialExtended, TimeSerialExtended, NowExtended, DateExtended, DateTimeExtended, i TimeExtended.
Te funkcije funkcioniraju na isti način kao i funkcija bez "Prošireno" na kraju, ali vraćaju vrijednost proširenog datuma/vremena, a ne vrijednosti datuma/vremena.
Imajte na umu da VBA nije izmijenjena, nove funkcije neće biti prepoznate u VBA kodu, a postojeće funkcije neće funkcionirati s vrijednostima proširenog datuma/vremena.
Primjer
Izvorni upit:
Select DateValue([OrderDate]) AS OrderDateOnly_DateValue
, Format([OrderDate],"Short Date") AS OrderDateOnly_Format
From tblOrders
Sada promijenite DateValue([OrderDate]) u DateValueExtended([OrderDate]), čime ćete popraviti prvi izraz.
Imajte na umu da Access ne upravlja funkcijom Oblik za stupce Prošireni datum/vrijeme. možete samo postaviti svojstvo Oblik za stupac.
Stoga, ako koristite:
SELECT DateValueExtended([OrderDate]) AS OrderDateOnly_DateValue, Table1.OrderDate
FROM Table1;
I postavite svojstvo Oblik za drugi stupac na "Kratki datum", dobit ćete željene rezultate.
Pogledajte i sljedeće
Uvod u vrste podataka i svojstva polja