Sdílet prostřednictvím


DATUM (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)databáze SQL v Microsoft Fabric

Tato funkce vrací znakový řetězec reprezentující specifikovanou datovou částdaného data.

Přehled všech datových typů a funkcí jazyka Transact-SQL najdete v tématu Datové typy a funkce data a času jazyka Transact-SQL .

Transact-SQL konvence syntaxe

Syntaxe

DATENAME ( datepart , date )  

Arguments

datepart
Konkrétní část argumentu o datu , která DATENAME se vrátí. Tato tabulka obsahuje všechny platné argumenty části kalendářních dat.

Poznámka:

DATENAME nepřijímá uživatelsky definované ekvivalenty proměnných pro argumenty datepart .

datepart Abbreviations
rok yyy, yyyyy
čtvrt Qq, q
měsíc Mm, m
denofyear dy, y
den dd, d
týden Wk, WW
všední den DW, W
hodina hh
minuta MI, N
vteřina SS, S
milisekunda milisekunda
mikrosekunda Mcs
nanosekunda Ns
TZoffset TZ
ISO_WEEK ISOWK, ISOWW

date

Výraz, který lze rozlišit na jeden z následujících datových typů:

  • date
  • datetime
  • datetimeoffset
  • datetime2
  • smalldatetime
  • time

Pro datumDATENAME přijme výraz sloupce, výraz, řetězcový literál nebo uživatelsky definovanou proměnnou. Vyhnete se problémům s nejednoznačností pomocí čtyřmístných let. Informace o dvouciferných letech najdete v tématu Konfigurace dvouciferného roku konfigurace serveru .

Návratový typ

nvarchar

Návratová hodnota

  • Každá část data a její zkratky vrátí stejnou hodnotu.

Návratová hodnota závisí na nastavení jazykového prostředí pomocí SET LANGUAGE a na možnosti konfigurace serveru Konfigurovat výchozí jazyk při přihlašování. Návratová hodnota závisí na SET DATEFORMAT, pokud je datum řetězcovým literálem některých formátů. SET DATEFORMAT nemění vrácenou hodnotu, pokud je datum sloupcovým výrazem datového nebo časového datového typu.

Když má parametr data argument typu dat, vrácená hodnota závisí na nastavení specifikovaném v SET DATEFIRST.

TZoffset datepart Argument

Pokud je argument datepartTZoffset (tz) a argument data nemá časový posun v časovém pásmu, DATEADD vrátí se 0.

smalldatetimetime Argument

Když je datummalého datatime, vrací DATENAME sekundy jako 00.

Výchozí vrácení pro datepart, který není v argumentu data

Pokud datový typ argumentu data nemá specifikovanou datovou část, vrátí výchozí hodnotu pro tuto datovou část pouze tehdy, DATENAME pokud má argument data literál .

Například výchozí rok-měsíc-den pro jakýkoli datový typ je 1900-01-01. Tento výrok obsahuje argumenty date part pro datepart, time argument pro datum a vrací DATENAME1900, January, 1, 1, Monday.

SELECT DATENAME(year, '12:10:30.123')  
    ,DATENAME(month, '12:10:30.123')  
    ,DATENAME(day, '12:10:30.123')  
    ,DATENAME(dayofyear, '12:10:30.123')  
    ,DATENAME(weekday, '12:10:30.123');  

Pokud je datum zadáno jako sloupec proměnné nebo tabulky a datový typ pro danou proměnnou nebo sloupec nemá specifikovanou datovou část, DATENAME vrátí se chyba 9810. V tomto příkladu má proměnná @t časový datový typ. Příklad selhává, protože datum části roku je neplatné pro datový typ času :

DECLARE @t time = '12:10:30.123';   
SELECT DATENAME(year, @t);  

Poznámky

Použijte DATENAME v následujících klauzulích:

  • SESKUPIT PODLE
  • HAVING
  • ŘADIT PODLE
  • VYBRAT <seznam>
  • WHERE

V SQL Serveru DATENAME implicitně převádí stringové literály jako typ datetime2 . Jinými slovy, nepodporuje formát YDM, DATENAME když je datum předáno jako řetězec. Pokud chcete použít formát YDM, musíte řetězec explicitně přetypovat na typ datetime nebo smalldatetime .

Examples

Tento příklad vrací datové části pro dané datum. Nahraďte argument v příkazu SELECT hodnotou datepart z tabulky datepart :

SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');

Tady je soubor výsledků.

datepart Návratová hodnota
rok, yyyy, yy 2007
Čtvrt, QQ, Q 4
měsíc, mm, m Říjen
dayofyear, dy, y 303
Day, DD, D 30
týden, týdne, týdně 44
Všední den, dw Úterý
Hodina, hh 12
Minuta, N 15
Druhý, SS, S 32
Milisekunda, paní 123
mikrosekunda, MCS 123456
nanosekunda, ns 123456700
TZoffset, tz +05:10
ISO_WEEK, ISOWK, ISOWW 44

Azure Synapse Analytics and Analytics Platform System (PDW)

Tento příklad vrací datové části pro dané datum. Nahraďte argument v příkazu SELECT hodnotou datepart z tabulky datepart :

SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');  

Tady je soubor výsledků.

datepart Návratová hodnota
rok, yyyy, yy 2007
Čtvrt, QQ, Q 4
měsíc, mm, m Říjen
dayofyear, dy, y 303
Day, DD, D 30
týden, týdne, týdně 44
Všední den, dw Úterý
Hodina, hh 12
Minuta, N 15
Druhý, SS, S 32
Milisekunda, paní 123
mikrosekunda, MCS 123456
nanosekunda, ns 123456700
TZoffset, tz +05:10
ISO_WEEK, ISOWK, ISOWW 44

Viz také

CAST a CONVERT (Transact-SQL)