- 07/29/2017
- 3 minute de citit
-
- c
- j
- r
- M
- M
-
+9
.
Se aplică la: SQL Server (toate versiunile acceptate) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Parallel Data Warehouse
Această funcție returnează un șir de caractere care reprezintă partea de dată specificată din data specificată.
Vezi Tipuri și funcții de date și ore (Transact-SQL) pentru o prezentare generală a tuturor tipurilor de date și funcții Transact-SQL de date și ore.
Convenții de sintaxă Transact-SQL
Sintaxa
DATENAME ( datepart , date )
Nota
Pentru a vizualiza sintaxa Transact-SQL pentru SQL Server 2014 și versiunile anterioare, consultați Documentația versiunilor anterioare.
Argumente
datepart
Partea specifică a argumentului de dată pe care DATENAME
o va returna. Acest tabel enumeră toate argumentele datepart valabile.
Nota
DATENAME
nu acceptă echivalenți de variabile definite de utilizator pentru argumentele datepart.
datepart | Abbreviații | an | aa, yyyy | trimestru | qq, q | lună | mm, m | zilele anului | dy, y | zi | dd, d | săptămâna | wk, ww |
---|---|
zilele săptămânii | dw, w | oră | hh | minut | mi, n | secundă | ss, s | milisecundă | ms | microsecundă | mcs | nanosecundă | ns | TZoffset | tz | ISO_WEEK | ISOWK, ISOWWW |
date
O expresie care se poate rezolva la unul dintre următoarele tipuri de date:
- date
- datetime
- datetimeoffset
- datetime2
- smalldatetime
- datetime
- time
Pentru date, DATENAME
acceptă o expresie de coloană, o expresie, un literal de șir de caractere sau o variabilă definită de utilizator. Utilizați ani cu patru cifre pentru a evita problemele de ambiguitate. Consultați Configure the two digit year cuttoff Server Configuration Option pentru informații despre anii din două cifre.
Return Type
nvarchar
Return Value
- Care parte de dată și abrevierile sale returnează aceeași valoare.
Valoarea de retur depinde de mediul lingvistic setat prin utilizarea SET LANGUAGE și de opțiunea Configure the default language Server Configuration Option a login-ului. Valoarea de returnare depinde de SET DATEFORMAT în cazul în care data este un șir literal de anumite formate. SET DATEFORMAT nu modifică valoarea de retur atunci când data este o expresie de coloană a unui tip de date de tip dată sau oră.
Când parametrul date are un argument de tip de date de tip dată, valoarea de retur depinde de setarea specificată de SET DATEFIRST.
TZoffset datepart Argument
Dacă argumentul datepart este TZoffset (tz) și argumentul date nu are niciun decalaj de fus orar, DATEADD
returnează 0.
smalldatetime date Argument
Când data este smalldatetime, DATENAME
returnează secundele ca 00.
Default returnat pentru o parte de dată care nu se află în argumentul date
Dacă tipul de date al argumentului date nu are partea de dată specificată, DATENAME
va returna valoarea implicită pentru acea parte de dată numai dacă argumentul date are un literal .
De exemplu, valoarea implicită an-lună-zile pentru orice tip de date date este 1900-01-01. Această instrucțiune are argumente de parte de dată pentru datepart, un argument de timp pentru data, iar DATENAME
returnează 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');
Dacă data este specificată ca o variabilă sau o coloană de tabel, iar tipul de date pentru acea variabilă sau coloană nu are datapart specificată, DATENAME
va returna eroarea 9810. În acest exemplu, variabila @t are un tip de date timp. Exemplul eșuează deoarece partea de dată an nu este valabilă pentru tipul de date timp:
DECLARE @t time = '12:10:30.123'; SELECT DATENAME(year, @t);
Remarcații
Utilizați DATENAME
în următoarele clauze:
- GROUP BY
- HAVING
- ORDER BY
- SELECT <list>
- WHERE
În SQL Server, DATENAME transformă implicit literalele de tip șir de caractere într-un tip datetime2. Cu alte cuvinte, DATENAME
nu acceptă formatul YDM atunci când data este transmisă ca un șir de caractere. Trebuie să transformați în mod explicit șirul de caractere într-un tip datetime sau smalldatetime pentru a utiliza formatul YDM.
Exemple
Acest exemplu returnează părțile de date pentru data specificată. Înlocuiți o valoare a părților de dată din tabel pentru argumentul datepart
din instrucțiunea SELECT:
SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');
Iată setul de rezultate.
datepart | Valoare de retur |
---|---|
an, yyyy, yy | 2007 |
trimestru, qq, q | 4 |
lună, mm, m | octombrie |
zilele anului, dy, y | 303 |
zi, dd, d | 30 |
săptămână, wk, ww | 44 |
zilele săptămânii, dw | Marți | oră, hh | 12 |
minut, n | 15 | secundă, ss, s | 32 | milisecundă, ms | 123 |
microsecundă, mcs | 123456 |
nanosecundă, ns | 123456700 |
TZoffset, tz | +05:10 | ISO_WEEK, ISOWK, ISOWWW | 44 |
Azure Synapse Analytics and Parallel Data Warehouse
Acest exemplu returnează părțile de date pentru data specificată. Înlocuiți o valoare a părților de dată din tabel pentru argumentul datepart
din instrucțiunea SELECT:
SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');
Iată setul de rezultate.
parte de dată | Valoare de retur |
---|---|
an, aaaa, yy | 2007 |
trimestru, qq, q | 4 |
lună, mm, m | octombrie |
zilele anului, dy, y | 303 |
zi, dd, d | 30 |
săptămână, wk, ww | 44 |
zilele săptămânii, dw | Marți | oră, hh | 12 |
minut, n | 15 | secundă, ss, s | 32 | milisecundă, ms | 123 |
microsecundă, mcs | 123456 |
nanosecundă, ns | 123456700 |
TZoffset, tz | +05:10 | ISO_WEEK, ISOWK, ISOWWW | 44 |
Vezi și
CAST și CONVERT (Transact-SQL)
.