DATENAME (Transact-SQL)
Restituisce una stringa di caratteri che rappresenta il valore datepart specificato dell'elemento date specificato.
Per una panoramica di tutti i tipi di dati e delle funzioni di data e ora Transact-SQL, vedere Funzioni e tipi di dati di data e ora (Transact-SQL).
Convenzioni della sintassi Transact-SQL
Sintassi
DATENAME ( datepart , date )
Argomenti
datepart
Parte dell'elemento date da restituire. Nella tabella seguente vengono elencati tutti gli argomenti datepart validi. Variabili definite dall'utente equivalenti non sono valide.datepart
Abbreviazioni
year
yy, yyyy
quarter
qq, q
month
mm, m
dayofyear
dy, y
day
dd, d
week
wk, ww
weekday
dw, w
hour
hh
minute
mi, n
second
ss, s
millisecond
ms
microsecond
mcs
nanosecond
ns
TZoffset
tz
ISO_WEEK
ISOWK, ISOWW
date
Espressione che può essere risolta in un valore di tipo time, date, smalldatetime, datetime, datetime2 o datetimeoffset. date può essere costituito da un'espressione, da un'espressione di colonna, da una variabile definita dall'utente o da un valore letterale stringa.Per evitare ambiguità, esprimere gli anni nel formato a quattro cifre. Per informazioni sul formato dell'anno a due cifre, vedere Configurare l'opzione di configurazione del server two-digit year cutoff.
Tipo restituito
nvarchar
Valore restituito
- Ogni valore datepart e le relative abbreviazioni restituiscono lo stesso valore.
Il valore restituito dipende dalla lingua impostata tramite SET LANGUAGE e Configurare l'opzione di configurazione del server default language dell'account di accesso. Il valore restituito dipende da SET DATEFORMAT se date è un valore letterale stringa di alcuni formati. SET DATEFORMAT non influisce sul valore restituito quando la data è un'espressione della colonna di un tipo di dati data e ora.
Quando il parametro date ha un argomento con tipo di dati date, il valore restituito dipende dall'impostazione specificata tramite SET DATEFIRST.
Argomento datepart TZoffset
Se l'argomento datepart è TZoffset (tz) e l'argomento date non prevede una differenza di fuso orario, viene restituito il valore 0.
Argomento date smalldatetime
Quando date è smalldatetime, i secondi vengono restituiti come 00.
Valore predefinito restituito per un argomento datepart non incluso nell'argomento date
Se per il tipo di dati dell'argomento date non è specificato datepart, verrà restituita l'impostazione predefinita per datepart solo se un valore letterale è specificato per date.
Ad esempio, l'anno-mese-giorno predefinito per qualsiasi tipo di dati date è 1900-01-01. L'istruzione seguente include gli argomenti datepart per datepart e un argomento time per date e restituisce 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');
Se date viene specificato come variabile o colonna della tabella e per il tipo di dati per quella variabile o colonna non viene specificato datepart, viene restituito l'errore 9810. L'esempio di codice riportato di seguito ha esito negativo perché la parte di data anno non è valida per il tipo di dati time dichiarato per la variabile @t.
DECLARE @t time = '12:10:30.123';
SELECT DATENAME(year, @t);
Osservazioni
È possibile utilizzare DATENAME nell'elenco di selezione e nelle clausole WHERE, HAVING, GROUP BY e ORDER BY.
In SQL Server 2012 DATENAME consente di eseguire in modo implicito il cast di valori letterali stringa in un tipo datetime2. Pertanto, DATENAME non supporta il formato AGM se la data viene passata come stringa. È necessario eseguire il cast in modo esplicito della stringa in un tipo datetime o smalldatetime per utilizzare il formato AGM.
Esempi
Nell'esempio seguente vengono restituite le parti della data specificata.
SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');
Set di risultati:
datepart |
Valore restituito |
---|---|
year, yyyy, yy |
2007 |
quarter, qq, q |
4 |
month, mm, m |
Ottobre |
dayofyear, dy, y |
303 |
day, dd, d |
30 |
week, wk, ww |
44 |
weekday, dw |
Martedì |
hour, hh |
12 |
minute, n |
15 |
second, ss, s |
32 |
millisecond, ms |
123 |
microsecond, mcs |
123456 |
nanosecond, ns |
123456700 |
TZoffset, tz |
310 |
ISO_WEEK, ISOWK, ISOWW |
44 |