- 07/29/2017
- 3 minuti per leggere
-
- c
- j
- r
- M
- M
-
+9
Si applica a: SQL Server (tutte le versioni supportate) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Parallel Data Warehouse
Questa funzione restituisce una stringa di caratteri che rappresenta la parte di data specificata della data specificata.
Vedi Tipi di dati e funzioni di data e ora (Transact-SQL) per una panoramica di tutti i tipi di dati e funzioni Transact-SQL.
Convenzioni di sintassi Transact-SQL
Sintassi
DATENAME ( datepart , date )
Nota
Per vedere la sintassi Transact-SQL per SQL Server 2014 e precedenti, vedere la documentazione delle versioni precedenti.
Argomenti
datepart
La parte specifica dell’argomento data che DATENAME
restituirà. Questa tabella elenca tutti gli argomenti datapart validi.
Nota
DATENAME
non accetta equivalenti variabili definite dall’utente per gli argomenti datapart.
datepart | Abbreviazioni |
---|---|
anno | yy, yyyy |
trimestre | qq, q | mese | mm, m |
giorno dell’anno | dy, y | giorno | dd, d |
settimana | wk, ww |
giorno della settimana | dw, w |
ora | hh |
minuto | mi, n |
secondo | ss, s |
millisecondo | ms | microsecondo | mcs |
nanosecondo | ns |
TZoffset | tz |
ISO_WEEK | ISOWK, ISOWW |
date
Un’espressione che può risolversi in uno dei seguenti tipi di dati:
- data
- datetime
- datetimeoffset
- datetime2
- smalldatetime
- time
Per la data, DATENAME
accetta un’espressione di colonna, espressione, letterale di stringa o variabile definita dall’utente. Usa anni a quattro cifre per evitare problemi di ambiguità. Vedere Configurare il limite di due cifre per l’anno Opzione di configurazione del server per informazioni sugli anni a due cifre.
Tipo di ritorno
nvarchar
Valore di ritorno
- Ogni datapart e le sue abbreviazioni restituiscono lo stesso valore.
Il valore di ritorno dipende dall’ambiente linguistico impostato usando SET LANGUAGE, e dall’opzione Configura la lingua di default del server di configurazione del login. Il valore di ritorno dipende da SET DATEFORMAT se la data è una stringa letterale di alcuni formati. SET DATEFORMAT non cambia il valore di ritorno quando la data è un’espressione di colonna di un tipo di dati data o ora.
Quando il parametro data ha un argomento di tipo data, il valore di ritorno dipende dall’impostazione specificata da SET DATEFIRST.
TZoffset datepart Argument
Se l’argomento datepart è TZoffset (tz) e l’argomento data non ha offset di fuso orario, DATEADD
ritorna 0.
smalldatetime date Argomento
Quando la data è smalldatetime, DATENAME
restituisce i secondi come 00.
Il default restituito per una parte di data che non è nell’argomento date
Se il tipo di dati dell’argomento date non ha la parte di data specificata, DATENAME
restituisce il default per quella parte di data solo se l’argomento date ha un letterale .
Per esempio, il default anno-mese-giorno per qualsiasi tipo di dati date è 1900-01-01. Questa dichiarazione ha argomenti data part 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 la data è specificata come variabile o colonna di tabella, e il tipo di dati per quella variabile o colonna non ha il datepart specificato, DATENAME
restituirà l’errore 9810. In questo esempio, la variabile @t ha un tipo di dati time. L’esempio fallisce perché la parte data anno non è valida per il tipo di dati tempo:
DECLARE @t time = '12:10:30.123'; SELECT DATENAME(year, @t);
Remarks
Utilizzate DATENAME
nelle seguenti clausole:
- GROUP BY
- HAVING
- ORDER BY
- SELECT <list>
- WHERE
In SQL Server, DATENAME lancia implicitamente i letterali stringa come tipo datetime2. In altre parole, DATENAME
non supporta il formato YDM quando la data viene passata come stringa. Dovete castare esplicitamente la stringa in un tipo datetime o smalldatetime per usare il formato YDM.
Esempi
Questo esempio restituisce le parti di data per la data specificata. Sostituisci un valore di parte di data dalla tabella per l’argomento datepart
nell’istruzione SELECT:
SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');
Ecco il risultato.
datepart | Valore di ritorno |
---|---|
anno, yyyy, yy | 2007 |
trimestre, qq, q | 4 |
mese, mm, m | ottobre |
giorno dell’anno, dy, y | 303 |
giorno, dd, d | 30 | settimana, wk, ww | 44 |
giorno della settimana, dw | martedì |
ora, hh | 12 | minuto, n | 15 |
secondo, ss, s | 32 | millisecondo, ms | 123 |
microsecondo, mcs | 123456 |
nanosecondo, ns | 123456700 |
TZoffset, tz | +05:10 |
ISO_WEEK, ISOWK, ISOWW | 44 |
Azure Synapse Analytics and Parallel Data Warehouse
Questo esempio restituisce le parti di data per la data specificata. Sostituisci un valore di parte di data dalla tabella per l’argomento datepart
nell’istruzione SELECT:
SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');
Ecco il risultato.
datepart | Valore di ritorno |
---|---|
anno, yyyy, yy | 2007 |
trimestre, qq, q | 4 |
mese, mm, m | ottobre |
giorno dell’anno, dy, y | 303 |
giorno, dd, d | 30 | settimana, wk, ww | 44 |
giorno settimanale, dw | martedì |
ora, hh | 12 | minuto, n | 15 |
secondo, ss, s | 32 | millisecondo, ms | 123 |
microsecondo, mcs | 123456 |
nanosecondo, ns | 123456700 |
TZoffset, tz | +05:10 |
ISO_WEEK, ISOWK, ISOWW | 44 |
Vedi anche
CAST e CONVERT (Transact-SQL)