- 07/29/2017
- 3 minutes de lecture
-
- c
- j
- r
- M
- M
-
+9
.
S’applique à : SQL Server (toutes les versions prises en charge) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Parallel Data Warehouse
Cette fonction renvoie une chaîne de caractères représentant la partie de date spécifiée de la date spécifiée.
Voir Types de données et fonctions de date et d’heure (Transact-SQL) pour un aperçu de tous les types de données et fonctions de date et d’heure Transact-SQL.
Conventions de la syntaxe Transact-SQL
Syntaxe
DATENAME ( datepart , date )
Note
Pour visualiser la syntaxe Transact-SQL pour SQL Server 2014 et antérieur, voir la documentation des versions précédentes.
Arguments
datepart
La partie spécifique de l’argument date que DATENAME
renverra. Ce tableau liste tous les arguments de datepart valides.
Note
DATENAME
n’accepte pas les équivalents de variables définies par l’utilisateur pour les arguments de datepart.
datepart | Abréviations |
---|---|
année | yy, yyyy |
quarter | qq, q |
mois | mm, m | jour de l’année | dy, y |
jour | jj, d | semaine | wk, ww | jour de la semaine | dw, w | heure | hh | minute | mi, n | seconde | ss, s |
milliseconde | ms |
microseconde | mcs |
nanoseconde | ns |
TZoffset | tz |
ISO_WEEK | ISOWK, ISOWW |
date
Une expression qui peut se résoudre à l’un des types de données suivants :
- date
- datetime
- datetimeoffset
- datetime2
- smalldatetime
- time
Pour la date, DATENAME
acceptera une expression de colonne, une expression, un littéral de chaîne ou une variable définie par l’utilisateur. Utilisez des années à quatre chiffres pour éviter les problèmes d’ambiguïté. Voir Configurer l’option de configuration de serveur de coupure de l’année à deux chiffres pour des informations sur les années à deux chiffres.
Type de retour
nvarchar
Valeur de retour
- Chaque partie de date et ses abréviations renvoient la même valeur.
La valeur de retour dépend de l’environnement linguistique défini par l’utilisation de SET LANGUAGE, et par l’option de configuration de serveur Configurer la langue par défaut du login. La valeur de retour dépend de SET DATEFORMAT si la date est une chaîne littérale de certains formats. SET DATEFORMAT ne change pas la valeur de retour lorsque la date est une expression de colonne d’un type de données de date ou d’heure.
Lorsque le paramètre date a un argument de type de données de date, la valeur de retour dépend du paramètre spécifié par SET DATEFIRST.
TZoffset datepart Argument
Si l’argument datepart est TZoffset (tz) et que l’argument date n’a pas de décalage de fuseau horaire, DATEADD
renvoie 0.
smalldatetime date Argument
Lorsque date est smalldatetime, DATENAME
renvoie les secondes sous la forme 00.
Défaut retourné pour une partie de date qui n’est pas dans l’argument de date
Si le type de données de l’argument de date n’a pas la partie de date spécifiée, DATENAME
retournera le défaut pour cette partie de date seulement si l’argument de date a un littéral .
Par exemple, l’année-mois-jour par défaut pour tout type de données de date est 1900-01-01. Cette instruction a des arguments de partie de date pour datepart, un argument de temps pour date, et DATENAME
renvoie 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 la date est spécifiée comme une variable ou une colonne de table, et que le type de données pour cette variable ou cette colonne n’a pas la partie de date spécifiée, DATENAME
renverra l’erreur 9810. Dans cet exemple, la variable @t a un type de données temps. L’exemple échoue parce que la partie date année n’est pas valide pour le type de données heure:
DECLARE @t time = '12:10:30.123'; SELECT DATENAME(year, @t);
Remarques
Utiliser DATENAME
dans les clauses suivantes :
- GROUP BY
- HAVING
- ORDER BY
- SELECT <list>
- WHERE
Dans SQL Server, DATENAME convertit implicitement les littéraux de chaîne en type datetime2. En d’autres termes, DATENAME
ne prend pas en charge le format YDM lorsque la date est transmise sous forme de chaîne. Vous devez explicitement caster la chaîne en un type datetime ou smalldatetime pour utiliser le format YDM.
Exemples
Cet exemple renvoie les parties de date pour la date spécifiée. Substituez une valeur de partie de date 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 de retour |
---|---|
année, aaaa, aaa | 2007 | quartier, qq, q | 4 | mois, mm, m | octobre | jour de l’année, dy, y | 303 | jour, dd, d | 30 | semaine, wk, ww | 44 | jour de la semaine, dw | mardi |
heure, hh | 12 |
minute, n | 15 |
seconde, ss, s | 32 |
milliseconde, ms | 123 | microseconde, mcs | 123456 | nanoseconde, ns | 123456700 | TZoffset, tz | +05 :10 |
ISO_WEEK, ISOWK, ISOWW | 44 |
Azure Synapse Analytics and Parallel Data Warehouse
Cet exemple renvoie les parties de date pour la date spécifiée. Remplacez une valeur de partie de date de la table par 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 de retour |
---|---|
année, aaaa, aaa | 2007 | quartier, qq, q | 4 | mois, mm, m | octobre | jour de l’année, dy, y | 303 | jour, dd, d | 30 | semaine, wk, ww | 44 | jour de la semaine, dw | mardi |
heure, hh | 12 |
minute, n | 15 |
seconde, ss, s | 32 |
milliseconde, ms | 123 | microseconde, mcs | 123456 | nanoseconde, ns | 123456700 | TZoffset, tz | +05 :10 |
ISO_WEEK, ISOWK, ISOWW | 44 |
See also
CAST et CONVERT (Transact-SQL)
.