Používání datového typu Rozšířené datum a čas

Platí pro
Access pro Microsoft 365 Access 2024 Access 2021

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 tématu datetime2 (Transact-SQL).

Rozšířená oblast data a času Upozornění : Když v Accessu vytvoříte výrazy a použijete funkce data a času založené na datovém typu Rozšířené datum a čas, může dojít ke ztrátě přesnosti výpočtů nebo k jiným problémům s výsledky. 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

Porovnání datových typů Datum a čas a Rozšířené datum a čas Používání datového typu Rozšířené datum a čas Aspekty zpětné kompatibility 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ů

Začátek stránky

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 Pokud chcete využít větší rozsah dat a vyšší přesnost, můžete do accessové tabulky přidat pole. 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 se podobá datovému typu Datum a čas s tím rozdílem, že můžete také zadat zlomek 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 řídit zobrazení zlomkových nanosekund, otevřete tabulku, na pásu karet vyberte Pole a ve skupině Formátování vyberte TlačítkoZvětšit desetinná místa nebo Obrázek tlačítkaZmenšit desetinná místa.

Formátování Datové typy Datum a čas a Rozšířené datum a čas používají podobné standardní formátovací řetězce : Obecné datum, Dlouhé datum, Střední datum, Krátké datum, Dlouhý čas, Střední čas a Krátký čas a oba 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 nebo importovat databáze s odpovídajícím datovým typem, například datový typ SQL Server datetime2. 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ší. Pro SQL Server doporučujeme použít Ovladač Microsoft ODBC 13.1. Podporuje se také technologie OLE DB. Další informace najdete v tématech Podpora datových typů pro vylepšení data a času ODBC a Použití rozšířených funkcí pro datum a čas (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 vyhodnocení 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.

Začátek stránky

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.

Začátek stránky

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: Tabulka DTE
Datový typ ID: Automatické číslování
Datový typ DTEData: Datum a čas prodloužení
Datový typ DTData: Datum a čas

Pří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 zobrazí: 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 zobrazí:

Den v měsíci je: 1
Den v měsíci je: 1

Funkce, které pracují s rozšířeným datem a časem ve výrazech dotazu

Následující funkce fungují s rozšířeným datem a časem ve výrazech dotazu:
​​​​​​​
Rok, Měsíc, Den v týdnu, Den, Hodina, Minuta, Druhý, DateAdd, DateDiff a DatePart.

Kromě toho existují rozšířené verze některých funkcí, které nemůžou použít typ argumentu k určení, že by výpočet měl vytvořit rozšířenou hodnotu data a času. Jsou to:

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

Tyto funkce fungují stejně jako funkce bez rozšířené na konci, ale místo hodnoty Datum a čas vrací rozšířenou hodnotu data a času.

Všimněte si, že jazyk VBA nebyl změněn, nové funkce nebudou v kódu jazyka VBA rozpoznány a stávající funkce nebudou fungovat s rozšířenými hodnotami data a času.

Příklad

Původní dotaz:


Select DateValue([OrderDate]) AS OrderDateOnly_DateValue

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

From tblOrders

Teď změňte DateValue([OrderDate]) na DateValueExtended([OrderDate]), čímž opravíte první výraz.

Všimněte si, že Access nezpracuje funkci Format pro rozšířené sloupce data a času; stačí nastavit vlastnost Format pro sloupec.

Proto pokud používáte:


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

FROM Table1;

A nastavte vlastnost Format pro druhý sloupec na "Krátké datum", dostanete požadované výsledky.

Začátek stránky

Viz také

Úvod k datovým typům a vlastnostem pole

Formátování pole data a času

Vytvoření nebo odstranění pole data a času