Tip podataka "Datum/vreme" skladišti informacije o datumu i vremenu i sličan je tipu podataka "Datum/vreme", ali pruža veći opseg datuma, višu razlomku i kompatibilnost sa tipom datuma SQL Server datuma2. Kada uvezete ili povežete Access podatke sa SQL Server, možete dosledno da mapirate Access polje Datum/vreme prošireno u kolonu SQL Server datum/vreme2. Više informacija potražite u članku datum/vreme2 (Transact-SQL).
Upozorenje o proširenom opsegu datuma/vremena Kada kreirate izraze i koristite funkcije datuma/vremena na osnovu tipa podataka "Datum/vreme" u programu Access, možete izgubiti preciznost u izračunavanjima ili naići na druge probleme sa rezultatima. Svesni smo ovog problema i planiramo da bolje podržimo izraze i funkcije u predstojećem izdanju. Kao zaobilazno rešenje, možete da kreirate prolazni upit da biste koristili jednake SQL Server izraza i funkcije datuma/vremena. Više informacija potražite u članku Poređenje Access SQL-a sa SQL Server TSQL.
U ovom članku
| Poređenje tipova podataka "Datum/vreme" i "Datum/vreme" | Korišćenje tipa podataka "Datum/vreme prošireno" | Kompatibilnost sa prethodnim verzijama | Korišćenje tipa podataka "Datum/vreme" kao niske u VBA |
|---|
Poređenje tipova podataka "Datum/vreme" i "Datum/vreme"
Sledeće tabele rezimira važne razlike između ova dva tipa podataka.
| Atribut | Datum/vreme | Datum/vreme prošireno |
|---|---|---|
| Minimalna vrednost | 100-01-01 00:00:00 | 0001-01-01 00:00:00 |
| Maksimalna vrednost | 9999-12-31 23:59:59.999 | 9999-12-31 23:59:59.9999999 |
| Preciznost | 0,001 sekundi | 1 nanosekud |
| Veličina | Plutajuća tačka dvostruke preciznosti | Kodirana niska od 42 bajta |
Korišćenje tipa podataka "Datum/vreme prošireno"
Sledeće informacije opisuju važna razmatranja korišćenja.
Prikaz dizajna tabele Da biste iskoristili veći opseg podataka i veću preciznost, možete da dodate polje u Access tabelu. Takođe možete da konvertujete tip podataka "Datum/vreme" u tip podataka "Datum/vreme" u prikazu dizajna tabele. Podržana je i upotreba ovog tipa podataka kao polja primarnog ključa. Više informacija potražite u članku Kreiranje tabele i dodavanje polja.
Unos datuma i vremena Unos vrednosti datuma i vremena sličan je tipu podataka "Datum/vreme", osim što možete da unesete i nanosekud razlomka. Na primer:
- Format unosa: mm/dd/yyyy hh:mm:ss.nnnnnnn
- Primer: 06/15/1215 09:25:3.234
Ako ima više od 7 razlomljenih nanosekdija, oni se zaokružuju na 7 cifara. Da biste kontrolisali prikaz nanosekuna razlomka, otvorite tabelu, na traci izaberite stavku Polja, a zatim u grupi Oblikovanje izaberite stavku Povećaj sliku dugmeta za decimale
ili Smanji dugme za decimale
Oblikovanje Tipovi podataka "Datum/vreme" i "Datum/vreme" koriste slične standardne niske za oblikovanje opšteg datuma, dugog datuma, srednjeg datuma, kratkog oblika datuma, dugačkog vremena, srednjeg vremena i kratkog vremena i podržavaju prilagođeno oblikovanje. Za tip podataka "Datum/vreme" prošireni formati podataka, standardni formati zasnovani na vremenu takođe podržavaju razlomnu preciznost za nanosekude. Oblikovanje tipa podataka "Datum/vreme" podrazumevano je podrazumevano na opšte formate datuma i dugog vremena i prati opcije navedene u regionalnim postavkama operativnog sistema Windows. Oblikovanje preciznosti razlomka možete da kontrolišete i pomoću svojstva Decimalni Places da biste naveli broj cifara sa desne strane decimalnog zareza (1-7).
Povezivanje i uvoz Takođe možete da se povežete sa bazama podataka sa odgovarajućim tipom podataka ili da ih uvezete iz SQL Server datuma i vremena2. SQL Server verzije 2014 ili novije baze podataka su podržane. Tip podataka "Datum/vreme" zahteva upotrebu Microsoft ODBC upravljačkog programa za SQL Server 11 ili noviju verziju. Preporučujemo da koristite Microsoft ODBC upravljački program 13.1 za SQL Server. Korišćenje OLE DB-a je takođe podržano. Više informacija potražite u člancima Podrška za tip podataka za poboljšanja ODBC datuma i vremena i Korišćenje poboljšanih funkcija datuma i vremena (OLE DB).
Obrasci i izveštaji Tip podataka "Datum/vreme" možete dodati obrascu ili izveštaju. U obrascu možete da koristite birač datuma i masku unosa da biste uneli datum sa većim opsegom, ali ne i razlomka za nanosekunde.
Podrška za izraze Tip podataka "Datum/vreme" podržava SQL agregatne funkcije i procenu izraza. Na primer, korišćenje svojstva LoggedDateTime kao polja sa proširenim tipom podataka "Datum/vreme":
| Zadatak | Primer | Rezultat |
|---|---|---|
| Pronađi minimalnu vrednost | Min(Vreme evidentiranja) | Najraniji datum i vreme unutar opsega |
| Izdvajanje meseca | Month(EvidentggedDateTime) | Ime meseca, kao što je januar |
| Dodavanje jednog dana | [Vreme evidentiranja]+1 | Utorak će postati sreda |
Kompatibilnost sa prethodnim verzijama
Tip podataka "Datum/vreme" nije kompatibilan sa prethodnim verzijama programa Microsoft Access. Ako se tip koristi u okviru lokalne Access tabele, verzije programa Access koje ne sadrže ovu funkciju neće moći da otvore bazu podataka.
Možete da omogućite ili onemogućite prošireni tip podataka "Datum/vreme" za operacije povezivanja i uvoza sa opcijom trenutnog pristupa bazi podataka Podržava tip podataka "Datum/vreme" proširenog tipa podataka za povezane/lmported tabele. Više informacija potražite u članku Postavljanje korisničkih opcija za trenutnu bazu podataka.
Korišćenje tipa podataka "Datum/vreme" kao niske u VBA
Sledeći VBA primeri koriste DAO metode za prikazivanje, unos i procenu tipa podataka "Datum/vreme" na osnovu dolenavedene tabele.
| ID | DTEData | DTData |
|---|---|---|
| 1 | 1/1/2 1:01:03.1234567 PRE PODNE | 1/1/2001 |
Ime tabele: DTE tabela
ID tip podataka: Automatsko numerisanje
Tip podataka DTEData: Datum/vreme prošireno
Tip podataka DTData: Datum/vreme
Primer: prikazivanje datuma i vremena
Sledeći primer prikazuje datum i vreme. Korišćeni format je mm/dd/yyyy hh:mm:ss.nnnnnnn u 24-časovnom časovniku. Format 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 Access prikazuje: 01/01/0002 01:01:03.1234567.
Primer: Unos datuma i vremena
Sledeći primer unosi datum i vreme pomoću formata niske. Podržani su svi standardni formati 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 dodaje novi red (ID = 2):
| ID | DTEData | DTData |
|---|---|---|
| 1 | 1/1/2 1:01:03.1234567 PRE PODNE | 1/1/2001 |
| 2 | 1/1/9999 1:01:01.0123000 PRE PODNE | 1/1/2001 |
Primer: procena izraza upita
Sledeći primer koristi funkciju 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 Access prikazuje:
Dan u mesecu je: 1
Dan u mesecu je: 1
Funkcije koje rade sa proširenim datumom/vremenom u izrazima upita
Sledeće funkcije rade sa proširenim datumom/vremenom u izrazima upita:
Year, Month, Weekday, Day, Hour, Minute, Second, DateAdd, DateDiff i DatePart.
Pored toga, postoje proširene verzije nekih funkcija koje ne mogu da koriste tip argumenta da bi se utvrdilo da izračunavanje treba dati proširenu vrednost datuma/vremena. Ovo su:
DateValueExtended, TimeValueExtended, DateSerialExtended, TimeSerialExtended, NowExtended, DateExtended, DateTimeExtended i TimeExtended.
Ove funkcije rade na isti način kao funkcija bez opcije "Prošireno" na kraju, ali vraćaju vrednost "Datum/vreme" koja je proširena, a ne vrednost "Datum/vreme".
Imajte na umu da VBA nije izmenjen, da nove funkcije neće biti prepoznate u VBA kodu i da postojeće funkcije neće raditi sa proširenim vrednostima datum/vreme.
Primer
Originalni upit:
Select DateValue([OrderDate]) AS OrderDateOnly_DateValue
, Format([OrderDate],"Short Date") AS OrderDateOnly_Format
From tblOrders
Sada promenite DateValue([DatumPorudžbine]) u DateValueExtended([DatumPorudžbine]), što će popraviti prvi izraz.
Imajte na umu da Access ne rukuje funkcijom Format za kolone sa proširenim datumom/vremenom; možete jednostavno da podesite svojstvo Format za kolonu.
Stoga, ako koristite:
SELECT DateValueExtended([OrderDate]) AS OrderDateOnly_DateValue, Table1.OrderDate
FROM Table1;
A svojstvo Format za drugu kolonu postavite na "Kratki oblik datuma", dobijate željene rezultate.
Takođe pogledajte
Uvod u tipove podataka i svojstva polja