Datové a časové typy a funkce (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analyticssql 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.
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.