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 le funzioni di data e ora Transact-SQL, vedere Funzioni di data e ora (Transact-SQL). Per informazioni ed esempi comuni ai tipi di dati e alle funzioni di data e ora, vedere Utilizzo di dati relativi a data e ora.
Sintassi
DATENAME ( datepart , date )
Argomenti
datepart
Parte dell'elemento date da restituire. Nella tabella seguente vengono elencati tutti gli argomenti datepart validi. Le variabili equivalenti definite dall'utente 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
hour
hh
minute
mi, n
second
ss, s
millisecond
ms
microsecond
mcs
nanosecond
ns
TZoffset
tz
date
Espressione che può essere risolta in un valore di tipo time, date, smalldatetime, datetime, datetime2 o datetimeoffset. I valori di tipo date possono essere costituiti da un'espressione, un'espressione di colonna, una variabile definita dall'utente o 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 Opzione 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 dallalingua predefinita 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 di colonna di un tipo di dati ora o data.
Per le versioni di SQL Server successive a SQL Server 2000, 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.
Valore predefinito restituito per un argomento datepart non incluso nell'argomento date
Se per il tipo di dati dell'argomento date non è specificato l'argomento datepart, viene restituita l'impostazione predefinita per datepart.
Ad esempio, l'anno-mese-giorno predefinito per qualsiasi tipo di dati date è 1900-01-01. L'istruzione seguente include argomenti di parti di data per datepart e un argomento relativo all'ora 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');
Il valore ora-minuto-secondo predefinito per il tipo di dati time è 00:00:00. L'istruzione seguente include argomenti di parti di ora per datepart e un argomento relativo alla data per date e restituisce 0, 0, 0.
SELECT DATENAME(hour, '2007-06-01')
,DATENAME(minute, '2007-06-01')
,DATENAME(second, '2007-06-01');
Osservazioni
È possibile utilizzare DATENAME in un elenco di selezione e nelle clausole WHERE, HAVING, GROUP BY e ORDER BY. In SQL Server 2008 R2 DATENAME esegue in modo implicito il cast di valori letterali stringa come tipo datetime2. Ciò significa che DATEDIFF non supporta più il formato AGM quando la data viene passata come stringa. Per utilizzare il formato AGM, è necessario eseguire in modo esplicito il cast della stringa in un tipo datetime o smalldatetime.
Esempi
Nell'esempio seguente vengono restituite le parti della data per la 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 |