Sdílet prostřednictvím


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

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analyticssql database v Microsoft Fabric

Sekce v tomto článku pokrývají všechny Transact-SQL datové a časové typy a funkce.

Datové typy data a času

Transact-SQL datové a časové typy jsou uvedeny v následující tabulce:

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í

Od SQL Server 2008 (10.0.x) odvozuje databázový engine hodnoty data a času pomocí GetSystemTimeAsFileTime() Windows API. 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. Použijte GetSystemTimeAdjustment() Windows API pro určení přesnosti.

Funkce Syntaxe Návratová hodnota Návratový datový typ Determinismus
SYSDATETIME SYSDATETIME ( ) Vrací hodnotu datetime2(7) obsahující datum a čas počítače, na kterém instance SQL Serveru běží. Vrácená hodnota nezahrnuje časový posun pásma. datetime2(7) Nedeterministické
SYSDATETIMEOFFSET SYSDATETIMEOFFSET ( ) Vrací hodnotu datetimeoffset(7) obsahující datum a čas počítače, na kterém běží instance SQL Serveru. Vrácená hodnota zahrnuje časový posun pásma. datetimeoffset(7) Nedeterministické
SYSUTCDATETIME SYSUTCDATETIME ( ) Vrací hodnotu datetime2(7) obsahující datum a čas počítače, na kterém běží instance SQL Serveru. Funkce vrací hodnoty data a času jako UTC čas (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 Vrací hodnotu datetime obsahující datum a čas počítače, na kterém běží instance SQL Serveru. Vrácená hodnota nezahrnuje časový posun pásma. datetime Nedeterministické
GETDATE GETDATE ( ) Vrací hodnotu datetime obsahující datum a čas počítače, na kterém běží instance SQL Serveru. Vrácená hodnota nezahrnuje časový posun pásma. datetime Nedeterministické
GETUTCDATE GETUTCDATE ( ) Vrací hodnotu datetime obsahující datum a čas počítače, na kterém běží instance SQL Serveru. Funkce vrací hodnoty data a času jako UTC čas (koordinovaný univerzální čas). datetime Nedeterministické
CURRENT_DATE CURRENT_DATE Vrací hodnotu data obsahující pouze datum počítače, na kterém běží instance databázového enginu. 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 (datová část, číslo, datum, původ) Vrací hodnotu odpovídající začátku každého datovo-časového bucketu z časového razítka definovaného parametrem počátku , nebo výchozí hodnotu 1900-01-01 00:00:00.000 původu, pokud parametr počátku není specifikován. Návratový typ závisí na argumentu zadaném pro datum. Nedeterministické
DATUM DATENAME ( datepart, date ) Vrací znakový řetězec reprezentující specifikovanou datovou část daného data. nvarchar Nedeterministické
DATEPART DATEPART ( datepart, date ) Vrací celé číslo představující specifikovanou datovou částdaného data. int Nedeterministické
DATETRUNC DATETRUNC ( datepart, datum ) Vrátí vstupní datum zkrácené na určenou datovou část. Návratový typ závisí na argumentu zadaném pro datum. Nedeterministické
DEN DEN ( datum ) Vrací celé číslo představující denní část zadaného data. int Deterministický
MĚSÍC MĚSÍC ( datum ) Vrací celé číslo představující měsíc daného data. int Deterministický
ROK ROK ( datum ) Vrací celé číslo představující rok a část určené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 ( rok, měsíc, den ) Vrací hodnotu data pro určený rok, měsíc a den. date Deterministický
DATETIME2FROMPARTS DATETIME2FROMPARTS ( rok, měsíc, den, hodina, minuta, sekundy, zlomky, přesnost ) Vrací hodnotu datetime2 pro určené datum a čas s zadanou přesností. datetime2(přesnost) Deterministický
DATETIMEFROMPARTS DATETIMEFROMPARTS ( rok, měsíc, den, hodina, minuta, sekundy, milisekundy ) Vrací hodnotu data a času pro dané datum a čas. datetime Deterministický
DATUMČASČAS, posun od částí DATETIMEOFFSETFROMPARTS ( rok, měsíc, den, hodina, minuta, sekundy, zlomky, hour_offset, minute_offset, přesnost ) Vrací hodnotu datetimeoffset pro dané datum a čas, s požadovanými offsety a přesností. datetimeoffset(přesnost) Deterministický
SMALLDATETIMEFROMPARTS SMALLDATETIMEFROMPARTS ( rok, měsíc, den, hodina, minuta ) Vrací hodnotu smalldatetime pro dané datum a čas. smalldatetime Deterministický
ČAS Z ČÁSTÍ ČAS z částí ( hodina, minuta, sekundy, zlomky, přesnost ) Vrátí časovou hodnotu pro daný čas s určenou přesností. čas (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, start,end date ) Vrátí počet hranic datepartu dat, které byly překročeny mezi dvěma určenými daty. int Deterministický
DATEDIFF_BIG DATEDIFF_BIG ( datum část, datum začátku, konec ) Vrátí počet hranic datepartu dat, které byly překročeny mezi dvěma určený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, číslo, datum ) Vrátí novou hodnotu datového času přidáním intervalu k určené datové částidaného data. Datový typ argumentu data Deterministický
EOMONTH EOMONTH ( start_date [ , month_to_add ] ) Vrací poslední den měsíce obsahující uvedené 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 ) SWITCHOFFSET mění časový posun hodnoty DATETIMEOFFSET a zachovává hodnotu UTC. datetimeoffset s frakcionální přesností DATETIMEOFFSET Deterministický
DODATE, čas posun TODATETIMEOFFSET (výraz, time_zone ) TODATETIMEOFFSET převádí hodnotu datetime2 na hodnotu datetimeoffset. TODATETIMEOFFSET interpretuje hodnotu datetime2 v lokálním čase pro specifikovaný time_zone. datetimeoffset s zlomkovou přesností argumentu datetime Deterministický

Funkce, které nastavují nebo vracejí funkce formátu relace

Funkce Syntaxe Návratová hodnota Návratový datový typ Determinismus
@@DATEFIRST @@DATEFIRST Vrátí aktuální hodnotu pro relaci ze SET DATEFIRST. tinyint Nedeterministické
STANOVTE DATUM JAKO PRVNÍ NASTAVIT DATEFIRST { number | @number_var } Nastaví první den v týdnu na číslo od 1 do 7. Není relevantní Není relevantní
NASTAVIT FORMÁT DATA SET DATEFORMAT { format | @format_var } Nastavuje pořadí datových částí (měsíc/den/rok) pro zadávání dat datetime nebo smalldatetime . Není relevantní Není relevantní
@@LANGUAGE @@LANGUAGE Vrátí název aktuálně používaného jazyka. @@LANGUAGE není funkce na základě data nebo času. Nicméně nastavení jazyka může ovlivnit výstup datových funkcí. Není relevantní Není relevantní
JAZYK PŘEDEM NASTAV JAZYK { [ N ] 'jazyk' | @language_var } Nastavuje jazykové prostředí pro relace a systémové zprávy. SET LANGUAGE není funkce data nebo času. Nicméně nastavení jazyka ovlivňuje výstup datových funkcí. Není relevantní Není relevantní
sp_helplanguage sp_helplanguage [ [ @language = ] 'jazyk' ] Vrací informace o formátech dat ve všech podporovaných jazycích. sp_helplanguage není to procedura uložená v datu nebo čase. Nicméně nastavení jazyka ovlivňuje výstup datových funkcí. Není relevantní Není relevantní

Funkce, které ověřují hodnoty data a času

Funkce Syntaxe Návratová hodnota Návratový datový typ Determinismus
ISDATE ISDATE ( výraz ) Určuje, zda vstupní výraz datetime nebo smalldatetime má platnou hodnotu data nebo času. int ISDATE je deterministický pouze s funkcí CONVERT, když je specifikován parametr stylu CONVERT a když styl není roven 0, 100, 9 nebo 109.
Article Description
FORMÁT 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 Poskytuje informace o převodu hodnot data a času na a z literálů řetězců a dalších formátů dat 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.
V ČASOVÉM PÁSMU Umožňuje převod časových pásem.