DATENAME (Transact-)SQL)

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

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.