Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
sql database v Microsoft Fabric
Oddíly v tomto článku se týkají všech datových typů a funkcí Transact-SQL data a času, včetně použití a příkladů.
Datové typy data a času
Následující tabulka uvádí datové typy Transact-SQL data a času.
| Datový typ | Formát | Rozmezí | Přesnost | Velikost úložiště (bajty) | Uživatelsky definovaná přesnost zlomku sekundy | Posun časového pásma |
|---|---|---|---|---|---|---|
| time | HH:mm:ss[.nnnnnnn] | 00:00:00.0000000 až 23:59:59.9999999 | 100 nanosekund | 3 až 5 | Ano | Ne |
| date | yyyy-MM-dd | 0001-01-01 až 9999-12-31 | 1 den | 3 | Ne | Ne |
| smalldatetime | yyyy-MM-dd HH:mm:ss | 1900-01-01 až 2079-06-06 | 1 minuta | 4 | Ne | Ne |
| datetime | yyyy-MM-dd HH:mm:ss[.nnn] | 1753-01-01 až 9999-12-31 | 0,00333 sekundy | 8 | Ne | Ne |
| datetime2 | yyyy-MM-dd HH:mm:ss[.nnnnnnn] | 0001-01-01 00:00:00.0000000 až 9999-12-31 23:59:59.9999999 | 100 nanosekund | 6 až 8 | Ano | Ne |
| datetimeoffset | yyyy-MM-dd HH:mm:ss[.nnnnnnnn] [+|-]HH:mm | 0001-01-01 00:00:00.0000000 až 9999-12-31 23:59:59.9999999 (v UTC) | 100 nanosekund | 8 až 10 | Ano | Ano |
Poznámka:
Datový typ Transact-SQL rowversion není datový nebo časový typ. Timestamp je zastaralý synonymum pro Rowversion.
Funkce pro datum a čas
Následující tabulky uvádějí Transact-SQL funkce data a času. Další informace o determinismu naleznete v tématu Deterministické a nedeterministické funkce.
Funkce, které vracejí hodnoty datového a časového systému
Transact-SQL odvozuje všechny hodnoty datového a časového systému z operačního systému počítače, na kterém instance SQL Serveru běží.
Funkce datového a časového systému s vyšší přesností
Vzhledem k tomu, že SQL Server 2008 (10.0.x), databázový stroj odvozuje hodnoty data a času pomocí rozhraní GetSystemTimeAsFileTime() API systému Windows. Přesnost závisí na hardwaru počítače a verzi Windows, na které běží instance SQL Serveru. Toto API má přesnost pevně stanovenou na 100 nanosekund.
GetSystemTimeAdjustment() K určení přesnosti použijte rozhraní API systému Windows.
| Funkce | Syntaxe | Návratová hodnota | Návratový datový typ | Determinismus |
|---|---|---|---|---|
| SYSDATETIME | SYSDATETIME() |
Funkce SYSDATETIME vrátí hodnotu datetime2(7), která obsahuje datum a čas počítače, na kterém je spuštěna instance SYSTÉMU SQL Server. Vrácená hodnota nezahrnuje časový posun pásma. |
datetime2(7) | Nedeterministické |
| SYSDATETIMEOFFSET | SYSDATETIMEOFFSET () |
Funkce SYSDATETIMEOFFSET vrátí hodnotu datetimeoffset(7), která obsahuje datum a čas počítače, na kterém je spuštěna instance SQL Serveru. Vrácená hodnota zahrnuje časový posun pásma. |
datetimeoffset(7) | Nedeterministické |
| SYSUTCDATETIME | SYSUTCDATETIME () |
Funkce SYSUTCDATETIME vrátí hodnotu datetime2(7), která obsahuje datum a čas počítače, na kterém je spuštěna instance SYSTÉMU SQL Server.
SYSUTCDATETIME vrátí hodnoty data a času jako čas UTC (koordinovaný univerzální čas). |
datetime2(7) | Nedeterministické |
Funkce data a času systému s nižší přesností
| Funkce | Syntaxe | Návratová hodnota | Návratový datový typ | Determinismus |
|---|---|---|---|---|
| CURRENT_TIMESTAMP | CURRENT_TIMESTAMP |
Funkce CURRENT_TIMESTAMP vrátí hodnotu datetime obsahující datum a čas počítače, na kterém je spuštěna instance SYSTÉMU SQL Server. Vrácená hodnota nezahrnuje časový posun pásma. |
datetime | Nedeterministické |
| GETDATE | GETDATE() |
Funkce GETDATE vrátí hodnotu datetime obsahující datum a čas počítače, na kterém je spuštěna instance SYSTÉMU SQL Server. Vrácená hodnota nezahrnuje časový posun pásma. |
datetime | Nedeterministické |
| GETUTCDATE | GETUTCDATE() |
Funkce GETUTCDATE vrátí hodnotu datetime obsahující datum a čas počítače, na kterém je spuštěna instance SYSTÉMU SQL Server. Funkce GETUTCDATE vrátí hodnoty data a času jako čas UTC (Coordinated Universal Time). |
datetime | Nedeterministické |
| CURRENT_DATE | CURRENT_DATE |
Funkce CURRENT_DATE vrátí hodnotu data obsahující pouze datum počítače, na kterém je spuštěna instance databázového stroje. Vrácená hodnota nezahrnuje časový a časový posun v pásmu. |
date | Nedeterministické |
Funkce, které vracejí datové a časové části
| Funkce | Syntaxe | Návratová hodnota | Návratový datový typ | Determinismus |
|---|---|---|---|---|
| DATE_BUCKET | DATE_BUCKET ( <datepart>, <number>, <date>, <origin>) |
Funkce DATE_BUCKET vrátí hodnotu odpovídající začátku každého intervalu data a času z časového razítka definovaného parametrem původu nebo výchozí počáteční hodnotou 1900-01-01 00:00:00.000 , pokud není zadaný parametr původu. |
Návratový typ závisí na argumentu zadaném pro datum. | Nedeterministické |
| DATUM | DATENAME ( <datepart>, <date> ) |
Funkce DATENAME vrátí znakový řetězec představující zadanou část data zadaného data. |
nvarchar | Nedeterministické |
| DATEPART | DATEPART ( <datepart>, <date> ) |
Funkce DATEPART vrátí celé číslo představující zadanou část data zadaného data. |
int | Nedeterministické |
| DATETRUNC | DATETRUNC ( <datepart>, <date> ) |
Funkce vrací DATETRUNCvstupní datum zkrácené na určenou datovou část. |
Návratový typ závisí na argumentu zadaném pro datum. | Nedeterministické |
| DEN | DAY ( <date> ) |
Funkce DAY vrátí celé číslo představující část dne zadaného data. |
int | Deterministický |
| MĚSÍC | MONTH ( <date> ) |
Funkce MONTH vrátí celé číslo představující část měsíce zadaného data. |
int | Deterministický |
| ROK | YEAR ( <date> ) |
Funkce YEAR vrátí celé číslo představující část roku zadaného data. |
int | Deterministický |
Funkce, které vracejí hodnoty data a času ze svých částí
| Funkce | Syntaxe | Návratová hodnota | Návratový datový typ | Determinismus |
|---|---|---|---|---|
| DATFROMPARTS | DATEFROMPARTS ( <year>, <month>, <day> ) |
Funkce DATEFROMPARTS vrátí hodnotu data pro zadaný rok, měsíc a den. |
date | Deterministický |
| DATETIME2FROMPARTS | DATETIME2FROMPARTS ( <year>, <month>, <day>, <hour>, <minute>, <seconds>, <fractions>, <precision> ) |
Funkce DATETIME2FROMPARTS vrátí hodnotu datetime2 pro zadané datum a čas se zadanou přesností. |
datetime2(přesnost) | Deterministický |
| DATETIMEFROMPARTS | DATETIMEFROMPARTS ( <year>, <month>, <day>, <hour>, <minute>, <seconds>, <milliseconds> ) |
Funkce DATETIMEFROMPARTS vrátí hodnotu datetime pro zadané datum a čas. |
datetime | Deterministický |
| DATUMČASČAS, posun od částí | DATETIMEOFFSETFROMPARTS ( <year>, <month>, <day>, <hour>, <minute>, <seconds>, <fractions>, <hour_offset>, <minute_offset>, <precision> ) |
Funkce DATETIMEOFFSETFROMPARTS vrátí hodnotu datetimeoffset pro zadané datum a čas se zadanými posuny a přesností. |
datetimeoffset(přesnost) | Deterministický |
| SMALLDATETIMEFROMPARTS | SMALLDATETIMEFROMPARTS ( <year>, <month>, <day>, <hour>, <minute> ) |
Funkce SMALLDATETIMEFROMPARTS vrátí hodnotu smalldatetime pro zadané datum a čas. |
smalldatetime | Deterministický |
| ČAS Z ČÁSTÍ | TIMEFROMPARTS ( <hour>, <minute>, <seconds>, <fractions>, <precision> ) |
Funkce TIMEFROMPARTS vrátí časovou hodnotu pro zadaný čas se zadanou přesností. |
time(přesnost) | Deterministický |
Funkce, které vracejí hodnoty rozdílu data a času
| Funkce | Syntaxe | Návratová hodnota | Návratový datový typ | Determinismus |
|---|---|---|---|---|
| DATEDIFF | DATEDIFF ( <datepart>, <startdate>, <enddate> ) |
Funkce DATEDIFF vrátí počet hranic datových částí data nebo času, které jsou překříženy mezi dvěma zadanými daty. |
int | Deterministický |
| DATEDIFF_BIG | DATEDIFF_BIG ( <datepart>, <startdate>, <enddate> ) |
Funkce DATEDIFF_BIG vrátí počet hranic datových částí data nebo času, které jsou překříženy mezi dvěma zadanými daty. |
bigint | Deterministický |
Funkce, které mění hodnoty data a času
| Funkce | Syntaxe | Návratová hodnota | Návratový datový typ | Determinismus |
|---|---|---|---|---|
| DATEADD | DATEADD (<datepart>, <number>, <date> ) |
Funkce DATEADD vrátí novou hodnotu datetime přidáním intervalu do zadané části data zadaného data. |
Datový typ argumentu data | Deterministický |
| EOMONTH | EOMONTH ( <start_date> [ , <month_to_add> ] ) |
Funkce EOMONTH vrátí poslední den v měsíci obsahující zadané datum s volitelným posunem. |
Typ návratu je typ argumentu start_date , nebo alternativně datový typ datu . | Deterministický |
| PŘEPÍNACÍ OFFSET | SWITCHOFFSET (<DATETIMEOFFSET>, <time_zone> ) |
Funkce SWITCHOFFSET vrátí změny posunu časového pásma hodnoty datetimeoffset a zachová hodnotu UTC. |
datetimeoffset s desetinnou přesností argumentu DATETIMEOFFSET | Deterministický |
| DODATE, čas posun | TODATETIMEOFFSET (<expression>, <time_zone> ) |
Funkce TODATETIMEOFFSET transformuje hodnotu datetime2 na hodnotu datetimeoffset.
TODATETIMEOFFSET interpretuje hodnotu datetime2 v místním čase pro zadanou time_zone. |
datetimeoffset s zlomkovou přesností argumentu datetime | Deterministický |
Návod
Další informace a doporučení týkající se manipulace s informacemi o časovém pásmu na SQL Serveru s datovým typem datetimeoffset najdete v tématu AT TIME ZONE.
Funkce, které nastavují nebo vracejí funkce formátu relace
| Funkce | Syntaxe | Návratová hodnota | Návratový datový typ | Determinismus |
|---|---|---|---|---|
| @@DATEFIRST | @@DATEFIRST |
Funkce @@DATEFIRST vrátí aktuální hodnotu relace .SET DATEFIRST |
tinyint | Nedeterministické |
| SET DATEFIRST |
SET DATEFIRST { *number* } nebo SET DATEFIRST { *@number_var* } |
Příkaz SET DATEFIRST nastaví první den v týdnu na číslo od 1 do 7. |
Není relevantní | Není relevantní |
| SET DATEFORMAT |
SET DATEFORMAT { *format* } nebo SET DATEFORMAT { *@format_var* } |
Příkaz SET DATEFORMAT nastaví pořadí částí kalendářních dat (měsíc/den/rok) pro zadání dat datetime nebo smalldatetime . |
Není relevantní | Není relevantní |
| @@LANGUAGE | @@LANGUAGE |
Funkce @@LANGUAGE vrátí název jazyka v aktuálním použitém jazyce.
@@LANGUAGE není funkce data ani času. Nicméně nastavení jazyka může ovlivnit výstup datových funkcí. |
Není relevantní | Není relevantní |
| SET LANGUAGE |
SET LANGUAGE { [ N ] '*language*' } nebo SET LANGUAGE { *@language_var* } |
Nastavuje jazykové prostředí pro relace a systémové zprávy.
SET LANGUAGE není funkce data nebo času, ale nastavení jazyka ovlivňuje výstup funkcí kalendářních dat. |
Není relevantní | Není relevantní |
| sp_helplanguage |
sp_helplanguage [ [ *@language* = ] '*language*' ] |
Funkce sp_helplanguage vrátí informace o formátech kalendářních dat všech podporovaných jazyků. Nastavení jazyka má vliv na výstup funkcí kalendářních dat. |
Není relevantní | Není relevantní |
Funkce, které ověřují hodnoty data a času
| Funkce | Syntaxe | Návratová hodnota | Návratový datový typ | Determinismus |
|---|---|---|---|---|
| ISDATE | ISDATE ( <expression> ) |
Funkce ISDATE určuje, zda má vstupní výraz datetime nebo smalldatetime platnou hodnotu data nebo času. |
int | Funkce ISDATE je deterministická pouze s CONVERT funkcí, pokud CONVERT je zadán parametr stylu a pokud se styl nerovná 0, 100, 9 nebo 109. |
Články související s datem a časem
| Article | Description |
|---|---|
| FORMÁT | Funkce FORMAT vrátí hodnotu formátovanou zadaným formátem a volitelnou jazykovou verzí. Použijte funkci FORMAT pro formátování dat/času a čísel podle místního hlediska jako řetězců. |
| OBSAZENÍ a KONVERZE |
CAST Funkce CONVERT převádějí hodnoty data a času na řetězcové literály a z jiných formátů data a času. |
| psaní mezinárodních Transact-SQL příkazů | Poskytuje pokyny pro přenosnost databází a databázových aplikací, které používají Transact-SQL příkazy z jednoho jazyka do druhého nebo podporují více jazyků. |
| ODBC skalární funkce | Poskytuje informace o skalárních funkcích ODBC dostupných pro použití v Transact-SQL příkazech. Zahrnuje funkce ODBC pro datum a čas. |