DATENAME (Transact-SQL)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Cette fonction retourne une chaîne de caractères représentant la valeur datepart spécifiée de l’argument date spécifié.
Pour obtenir une vue d’ensemble de tous les types de données et toutes les fonctions de date et d’heure Transact-SQL, consultez Types de données et fonctions de date et d’heure (Transact-SQL).
Conventions de la syntaxe Transact-SQL
Syntaxe
DATENAME ( datepart , date )
Arguments
datepart
Partie spécifique de l’argument date que DATENAME
retourne. Ce tableau répertorie tous les arguments datepart valides.
Notes
DATENAME
n’accepte pas d’équivalents de variables définis par l’utilisateur pour les arguments datepart.
datepart | Abréviations |
---|---|
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
Expression qui peut être résolue en l’un des types de données suivants :
- date
- datetime
- datetimeoffset
- datetime2
- smalldatetime
- time
Pour date, DATENAME
accepte une expression de colonne, une expression, un littéral de chaîne ou une variable définie par l’utilisateur. Pour éviter toute ambiguïté, utilisez des années à quatre chiffres. Pour obtenir des informations sur les années à deux chiffres, consultez Configurer l’option de configuration du serveur two digit year cutoff.
Type de retour
nvarchar
Valeur de retour
- Chaque datepart et ses abréviations retournent la même valeur.
La valeur retournée dépend de l’environnement de langue défini à l’aide de SET LANGUAGE et de l’option de configuration de serveur Configurer la langue par défaut de la connexion. La valeur retournée dépend de SET DATEFORMAT si date est un littéral de chaîne de certains formats. SET DATEFORMAT ne change pas la valeur de retour quand la date est une expression de colonne d’un type de données de date ou d’heure.
Quand le paramètre date a un argument de type de données date, la valeur retournée dépend du paramètre spécifié par SET DATEFIRST.
Argument de la partie de date TZoffset
Si l’argument datepart est de type TZoffset (tz) et que l’argument date n’a aucun décalage de fuseau horaire, DATEADD
retourne la valeur 0.
Argument date smalldatetime
Quand date a la valeur smalldatetime, DATENAME
retourne les secondes sous la forme 00.
Valeur par défaut retournée pour une partie de date qui ne figure pas dans l'argument date
Si le type de données de l’argument date n’a pas l’argument datepart spécifié, DATENAME
retourne la valeur par défaut pour cet argument datepart uniquement si date a un littéral.
Par exemple, la combinaison année-mois-jour par défaut pour tout type de données date est 1900-01-01. L’instruction suivante a des arguments de partie de date pour datepart, un argument d’heure pour date, et DATENAME
retourne 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');
Si l’argument date est spécifié comme variable ou colonne de table, et que cette variable ou colonne n’a pas l’argument datepart spécifié, DATENAME
retourne l’erreur 9810. Dans l’exemple suivant, la variable @t a le type de donnéesheure. L’exemple échoue car la partie année de la date n’est pas valide pour le type de données time :
DECLARE @t time = '12:10:30.123';
SELECT DATENAME(year, @t);
Notes
Utilisez DATENAME
dans les clauses suivantes :
- GROUP BY
- HAVING
- ORDER BY
- SELECT <list>
- WHERE
Dans SQL Server, DATENAME convertit des littéraux de chaîne implicitement en type datetime2. En d’autres termes, DATENAME
ne prend pas en charge le format YDM quand la date est passée sous forme de chaîne. Vous devez caster explicitement la chaîne en type datetime ou smalldatetime pour utiliser le format AJM.
Exemples
L’exemple suivant retourne les parties de la date spécifiée. Remplacez une valeur datepart de la table pour l’argument datepart
dans l’instruction SELECT :
SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');
Voici le jeu de résultats.
datepart | Valeur retournée |
---|---|
year, yyyy, yy | 2007 |
quarter, qq, q | 4 |
month, mm, m | Octobre |
dayofyear, dy, y | 303 |
day, dd, d | 30 |
week, wk, ww | 44 |
weekday, dw | Mardi |
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 et Analytics Platform System (PDW)
L’exemple suivant retourne les parties de la date spécifiée. Remplacez une valeur datepart de la table pour l’argument datepart
dans l’instruction SELECT :
SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');
Voici le jeu de résultats.
datepart | Valeur retournée |
---|---|
year, yyyy, yy | 2007 |
quarter, qq, q | 4 |
month, mm, m | Octobre |
dayofyear, dy, y | 303 |
day, dd, d | 30 |
week, wk, ww | 44 |
weekday, dw | Mardi |
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 |