Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics 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 .
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 |