Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema di Piattaforma Analitica (PDW)
Database SQL in Microsoft Fabric
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 | sì, sìì |
| 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:
- RAGGRUPPA PER
- HAVING
- ORDINA PER
- Elenco SELECT <>
- 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 |
|---|---|
| anno, yyyy, yy | 2007 |
| Quarto, Qq, Q | 4 |
| mese, mm, m | ottobre |
| DayYear, Dy, Y | 303 |
| Day, dd, d | 30 |
| settimana, settimana, ww | 44 |
| Nei giorni feriali, senza problemi | Martedì |
| Ora, hh | 12 |
| minuto, n | 15 |
| secondo, ss, s | 32 |
| Millisecondo, MS | 123 |
| Microsecondo, MCS | 123456 |
| nanosecondi, 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 |
|---|---|
| anno, yyyy, yy | 2007 |
| Quarto, Qq, Q | 4 |
| mese, mm, m | ottobre |
| DayYear, Dy, Y | 303 |
| Day, dd, d | 30 |
| settimana, settimana, ww | 44 |
| Nei giorni feriali, senza problemi | Martedì |
| Ora, hh | 12 |
| minuto, n | 15 |
| secondo, ss, s | 32 |
| Millisecondo, MS | 123 |
| Microsecondo, MCS | 123456 |
| nanosecondi, ns | 123456700 |
| TZoffset, tz | +05:10 |
| ISO_WEEK, ISOWK, ISOWW | 44 |