- 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)
.