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ý rozsah data a času 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ý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 Důležité informace o zpětné kompatibilitě 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í.

Table Design View 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 taky zadat desetinnou hodnotu 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 Obrázek tlačítkaZvýšit počet desetinných míst nebo Obrázek tlačítkaSnížit počet desetinných míst.

Formátování Datové typy Datum a čas i 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 databáze s odpovídajícím datovým typem, jako je datový typ datetime2 (datetime2 systému SQL Server), 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ší. Pro SQL Server doporučujeme použít ovladač Microsoft ODBC Driver 13.1. Podporuje se také technologie OLE DB. Další informace najdete v tématech Podpora datového typu pro vylepšení data a času ODBC a Použití vylepšených funkcí 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.

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 je tento typ použit v místní tabulce Accessu, pak ve verzích Accessu, které tuto funkci neobsahují, nebudou možné databázi otevřít.

Datový typ Rozšířené datum a čas můžete povolit nebo zakázat pro operace propojení a importu pomocí možnosti Přístup k aktuální databáziPodporovat datový typ Rozšířené datum a čas pro odkazované nebo podporované 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: DTETable
Datový typ ID: Automatické číslo
Datový typ DTEData: Rozšířené datum a čas
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 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

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

S rozšířeným datem a časem ve výrazech dotazů pracují následující funkce:
​​​​​​​
Year, Month, Weekday, Day, Hour, Minute, Second, 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 výpočet má poskytnout 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 data a času vrátí hodnotu rozšířeného 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 existují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 nezpracovává funkci Format pro sloupce s rozšířeným datem a časem. stačí pro sloupec nastavit vlastnost Formát.

Pokud tedy použijete:


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

FROM Table1;

A nastavte vlastnost Formát pro druhý sloupec na "Datum krátké", získáte 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