Datový typ Rozšířené datum a čas ukládá informace o datu a času a je podobný datovému typu Datum a čas, ale nabízí větší rozsah kalendářních dat, vyšší desetinnou přesnost a kompatibilitu s datovým typem datetime2 SQL Serveru. Po importu nebo propojení dat z Accessu se SQL Serverem můžete konzistentně namapovat pole Rozšířené datum a čas v Accessu na sloupec datetime2 SQL Serveru. Další informace najdete v článku datetime2 (Transact-SQL).
Upozornění Když vytváříte výrazy a používáte funkce data a času založené na datovém typu Rozšířené datum a čas v Accessu, můžete přijít o přesnost ve výpočtech nebo může dojít k jiným problémům s výpočty. O tomto problému víme a v nadcházející verzi plánujeme vylepšit podporu výrazů a funkcí. Tento problém můžete obejít tak, že vytvoříte předávací dotaz, aby bylo možné použít odpovídající výraz a funkce data a času SQL Serveru. Další informace najdete v článku Porovnání Accessového SQL s SQL Serverem TSQL.
V tomto článku
Používání datového typu Rozšířené datum a čas jako řetězce ve VBA |
Porovnání datových typů Datum a čas a Rozšířené datum a čas
V následující tabulce najdete souhrn důležitých rozdílů mezi těmito dvěma datovými typy.
Atribut |
Datum a čas |
Rozšířené datum a čas |
---|---|---|
Minimální hodnota |
100-01-01 00:00:00 |
0001-01-01 00:00:00 |
Maximální hodnota |
9999-12-31 23:59:59,999 |
9999-12-31 23:59:59,9999999 |
Přesnost |
0,001 sekundy |
1 nanosekunda |
Velikost |
Číslo s plovoucí desetinnou čárkou s dvojitou přesností |
Kódovaný řetězec 42 bajtů |
Používání datového typu Rozšířené datum a čas
Následující informace popisují důležité aspekty používání.
Návrhové zobrazení tabulky Abyste mohli využít větší rozsah dat a vyšší přesnost, můžete přidat pole do tabulky Accessu. Můžete také převést datový typ Datum a čas na Rozšířené datum a čas v návrhovém zobrazení tabulky. Tento datový typ také můžete použít jako pole primárního klíče. Další informace najdete v článku Vytvoření tabulky a přidání polí.
Zadání data a času Zadávání hodnot data a času je podobné jako u datového typu Datum a čas s výjimkou toho, že můžete v desetinné části uvést nanosekundy. Příklad:
-
Formát zadávání: dd/mm/rrrr hh: mm:ss,nnnnnnn
-
Příklad: 15/06/1215 09:25:3,234
Pokud počet desetinných míst u nanosekund přesahuje 7, zaokrouhlí se na 7 číslic. Pokud chcete nastavit zobrazení desetinných míst u nanosekund, otevřete tabulku, na pásu karet vyberte Pole a ve skupině Formátování vyberte Zvýšit počet desetinných míst nebo Snížit počet desetinných míst .
Formátování Datové typy Datum a čas a Rozšířené datum a čas používají stejné standardní formátovací řetězce Datum (obecné), Datum (dlouhé), Datum (střední), Datum (krátké), Čas (dlouhý), Čas (střední) a Čas (krátký). Oba typy podporují vlastní formátování. U datového typu Rozšířené datum a čas standardní formáty založené na čase také podporují desetinnou přesnost pro nanosekundy. Při formátování datového typu Rozšířené datum a čas se ve výchozím nastavení používají formáty Datum (obecné) a Čas (dlouhý) a také možnosti zadané v místním nastavení Windows. Můžete také nastavit formátování desetinné přesnosti pomocí vlastnosti Počet desetinných míst, která umožňuje zadat počet číslic napravo od desetinné čárky (1–7).
Propojení a import Můžete také propojit databáze s odpovídajícím datovým typem, jako je datový typ datetime2 SQL Serveru, nebo z těchto databází provést import. Podporují se databáze SQL Serveru verze 2014 nebo novější. Datový typ Rozšířené datum a čas vyžaduje používání ovladače Microsoft ODBC pro SQL Server 11 nebo novější. Doporučujeme používat ovladač Microsoft ODBC 13.1 pro SQL Server. Podporuje se také technologie OLE DB. Další informace najdete v článku o podpoře datového typu pro zlepšení data a času ODBC a o vylepšených funkcích data a času (OLE DB).
Formuláře a sestavy Do formuláře nebo sestavy můžete přidat datový typ Rozšířené datum a čas. Ve formuláři můžete použít výběr data a vstupní masku k zadání data s větším rozsahem, ale není možné použít desetinnou přesnost pro nanosekundy.
Podpora výrazů Datový typ Rozšířené datum a čas podporuje agregační funkce SQL a vyhodnocování výrazů. Například použití LoggedDateTime jako pole s datovým typem Rozšířené datum a čas:
Úloha |
Příklad |
Výsledek |
---|---|---|
Vyhledání minimální hodnoty |
Min(LoggedDateTime) |
Nejdřívější datum a čas v rozsahu |
Extrahování měsíce |
Month(LoggedDateTime) |
Název měsíce, například leden |
Přidání jednoho dne |
[LoggedDateTime]+1 |
Úterý se změní na středu. |
Důležité informace o zpětné kompatibilitě
Datový typ Rozšířené datum a čas není kompatibilní s předchozími verzemi Microsoft Accessu. Pokud se typ používá v místní tabulce Accessu, verze Accessu, které tuto funkci neobsahují, nebudou moct databázi otevřít.
Můžete povolit nebo zakázat datový typ Rozšířené datum a čas pro operace propojení a importu s možností aktuálního přístupu k databáziPodpora rozšířeného datového typu datum a čas pro propojené nebo propojené tabulky. Další informace najdete v článku Nastavení možností uživatele pro aktuální databázi.
Používání datového typu Rozšířené datum a čas jako řetězce ve VBA
V následujících příkladech jazyka VBA se používají metody DAO, které slouží k zobrazení, zadání a vyhodnocení datového typu Rozšířené datum a čas podle následující tabulky.
ID |
DTEData |
DTData |
1 |
1/1/2 1:01:03,1234567 |
1/1/2001 |
Název tabulky: DTETable
Datový typ ID: AutonumberDatový typ DTEData: Rozšířené datum a čas Datový typ DTData: Datum a časPříklad: Zobrazení data a času
V následujícím příkladu se zobrazuje datum a čas. Používá se dd/mm/yyyy hh:mm:ss,nnnnnnn ve 24hodinovém formátu. Tento formát se nedá přizpůsobit.
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
Výsledek Access zobrazuje: 01/01/0002 01:01:03,1234567.
Příklad: Zadání data a času
V následujícím příkladu se k zadání data a času používá řetězcový formát. Podporují se všechny standardní formáty data a času.
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
Výsledek Access přidá nový řádek (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 |
Příklad: Vyhodnocení výrazu dotazu
V následujícím příkladu se funkce Day použije k extrahování čísla dne z polí data a času.
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
Výsledek Access zobrazuje:
Den v měsíci: 1
Den v měsíci: 1