DATENAME (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW)
Questa funzione restituisce una stringa di caratteri che rappresenta l'elemento datepart specificato dell'argomento date indicato.
Per una panoramica di tutti i tipi di dati e funzioni di data e ora Transact-SQL, vedere Funzioni e tipi di dati di data e ora (Transact-SQL).
Convenzioni relative alla sintassi Transact-SQL
Sintassi
DATENAME ( datepart , date )
Argomenti
datepart
Parte specifica dell'argomento date che verrà restituito da DATENAME
. Questa tabella elenca tutti gli argomenti validi per datepart.
Nota
DATENAME
non accetta equivalenti di variabili definite dall'utente come argomenti di datepart.
datepart | Abbreviations |
---|---|
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ò risolversi in uno dei tipi di dati seguenti:
- date
- datetime
- datetimeoffset
- datetime2
- smalldatetime
- time
Per date, DATENAME
accetta un'espressione di colonna, un'espressione, un valore letterale stringa o una variabile definita dall'utente. Per evitare problemi di ambiguità, esprimere gli anni nel formato a quattro cifre. Per informazioni sugli anni a due cifre, vedere Configurare l'opzione di configurazione del server Cambio data per anno a due cifre.
Tipo restituito
nvarchar
Valore restituito
- Ogni elemento datepart e le relative abbreviazioni restituiscono lo stesso valore.
Il valore restituito dipende dalla lingua impostata tramite SET LANGUAGE e in 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 modifica il valore restituito quando la data è un'espressione della colonna di un tipo di dati ora e data.
Quando il parametro date ha un argomento del tipo di dati date, il valore restituito dipende dall'impostazione specificata da SET DATEFIRST.
Argomento datepart TZoffset
Se l'argomento datepart è TZoffset (tz) e l'argomento date non prevede una differenza di fuso orario, DATEADD
restituisce 0.
Argomento date smalldatetime
Quando date è smalldatetime, DATENAME
restituisce i secondi come 00.
Valore predefinito restituito per un argomento datepart non incluso nell'argomento date
Se per il tipo di dati dell'argomento date non viene specificato datepart, DATENAME
restituirà il valore predefinito per datepart solo se l'argomento date ha un valore letterale.
Ad esempio, l'anno-mese-giorno predefinito per qualsiasi tipo di dati date è 1900-01-01. Questa istruzione include gli argomenti datepart per datepart, un argomento time per date e DATENAME
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 di tabella e per il tipo di dati della variabile o della colonna datepart non viene specificato, DATENAME
restituirà l'errore 9810. In questo esempio la variabile @t ha il tipo di dati time. L'esempio ha esito negativo perché la parte della data year non è valida per il tipo di dati time:
DECLARE @t time = '12:10:30.123';
SELECT DATENAME(year, @t);
Osservazioni:
Usare DATENAME
nelle clausole seguenti:
- GROUP BY
- HAVING
- ORDER BY
- SELECT <list>
- WHERE
In SQL Server, DATENAME consente di eseguire in modo implicito il cast di valori letterali stringa in un tipo datetime2. DATENAME
non supporta quindi il formato AGM se la data viene passata come stringa. Per usare il formato AGM è necessario eseguire il cast della stringa in modo esplicito in un tipo datetime o smalldatetime.
Esempi
In questo esempio vengono restituite le parti della data specificata. Sostituire un valore datepart della tabella per l'argomento datepart
nell'istruzione SELECT:
SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');
Il set di risultati è il seguente.
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 | +05:10 |
ISO_WEEK, ISOWK, ISOWW | 44 |
Azure Synapse Analytics e Piattaforma di strumenti analitici (PDW)
In questo esempio vengono restituite le parti della data specificata. Sostituire un valore datepart della tabella per l'argomento datepart
nell'istruzione SELECT:
SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');
Il set di risultati è il seguente.
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 | +05:10 |
ISO_WEEK, ISOWK, ISOWW | 44 |