DATENAME (Transact-SQL)

  • 29.7.2017
  • 3 minuty čtení
    • c
    • j
    • r
    • M
    • M
    • +9

Týká se: SQL Server (všechny podporované verze) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Parallel Data Warehouse

Tato funkce vrací řetězec znaků reprezentující zadanou část data zadaného data.

Přehled všech datových typů a funkcí Transact-SQL pro datum a čas najdete v části Datové typy a funkce Transact-SQL.

Syntaktické konvence jazyka Transact-SQL

Syntaxe

DATENAME ( datepart , date ) 

Poznámka

Pro zobrazení syntaxe jazyka Transact-SQL pro SQL Server 2014 a starší verze viz dokumentaci k předchozím verzím.

Argumenty

datepart
Konkrétní část argumentu data, kterou DATENAME vrátí. V této tabulce jsou uvedeny všechny platné argumenty datepart.

Poznámka

DATENAME neakceptuje uživatelsky definované ekvivalenty proměnných pro argumenty datepart.

.

datepart Zkratky
rok rr, yyyy
čtvrtletí qq, q
měsíc mm, m
den roku dy, y
den dd, d
týden wk, ww
týden dw, w
hodina hh
minuta mi, n
sekunda ss, s
milisekunda ms
mikrosekunda mcs
nanosekunda ns
TZoffset tz
ISO_WEEK ISOWK, ISOWW

date

Výraz, který lze převést na jeden z následujících datových typů:

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

Pro datum bude DATENAME akceptovat sloupcový výraz, výraz, řetězcový literál nebo uživatelsky definovanou proměnnou. Používejte čtyřmístné letopočty, abyste se vyhnuli problémům s nejednoznačností. Informace o dvoumístných letech naleznete v části Konfigurace možnosti konfigurace serveru pro odříznutí dvoumístného roku.

Vrácený typ

nvarchar

Vrácená hodnota

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

Vrácená hodnota závisí na jazykovém prostředí nastaveném pomocí SET LANGUAGE a možnosti Konfigurace výchozího jazyka Konfigurace serveru pro přihlášení. 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í návratovou hodnotu, pokud je datum sloupcovým výrazem datového typu datum nebo čas.

Pokud má parametr date argument datového typu datum, návratová hodnota závisí na nastavení zadaném pomocí SET DATEFIRST.

TZoffset datepart Argument

Pokud je argument datepart TZoffset (tz) a argument date nemá posunutí časového pásma, DATEADD vrací 0.

smalldatetime date Argument

Pokud je datum smalldatetime, DATENAME vrátí sekundy jako 00.

Vrácení výchozí hodnoty pro část data, která není v argumentu date

Pokud datový typ argumentu date nemá zadanou část data, vrátí DATENAME výchozí hodnotu pro tuto část data pouze v případě, že argument date má literál .

Například výchozí hodnota rok-měsíc-den pro libovolný datový typ data je 1900-01-01. Tento příkaz má argumenty datepart pro datepart, argument time pro date a DATENAME vrátí 1900, 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'); 

Je-li datum zadáno jako proměnná nebo sloupec tabulky a datový typ této proměnné nebo sloupce nemá zadanou datepart, DATENAME vrátí chybu 9810. V tomto příkladu má proměnná @t datový typ time. Příklad selže, protože datová část rok je neplatná pro datový typ čas:

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

Poznámky

V následujících klauzulích použijte DATENAME:

  • GROUP BY
  • HAVING
  • ORDER BY
  • SELECT <list>
  • WHERE

V SQL Serveru DATENAME implicitně obsazuje řetězcové literály jako typ datetime2. Jinými slovy, DATENAME nepodporuje formát YDM, pokud je datum předáno jako řetězec. Chcete-li použít formát YDM, musíte řetězec explicitně převést na typ datetime nebo smalldatetime.

Příklady

Tento příklad vrací části data pro zadané datum. V příkazu SELECT nahraďte hodnotu části data z tabulky za argument datepart:

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

Tady je sada výsledků.

datepart Vrácená hodnota
rok, rrrr, rrrr 2007
čtvrtletí, qq, q 4
měsíc, mm, m oktober
dayofyear, dy, y 303
day, dd, d 30
week, wk, ww 44
weekday, dw úterý
hodina, hh 12
minuta, n 15
sekunda, ss, s 32
milisekunda, ms 123
mikrosekunda, mcs 123456
nanosekunda, ns 123456700
TZoffset, tz +05:10
ISO_WEEK, ISOWK, ISOWW 44

Azure Synapse Analytics and Parallel Data Warehouse

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

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

Tady je sada výsledků.

datepart Vrácená hodnota
rok, rrrr, rrrr 2007
čtvrtletí, qq, q 4
měsíc, mm, m oktober
dayofyear, dy, y 303
day, dd, d 30
week, wk, ww 44
weekday, dw úterý
hodina, hh 12
minuta, n 15
sekunda, ss, s 32
milisekunda, ms 123
mikrosekunda, mcs 123456
nanosekunda, ns 123456700
TZoffset, tz +05:10
ISO_WEEK, ISOWK, ISOWW 44

Viz také

CAST a CONVERT (Transact-SQL)

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.