DATENAME (Transact-SQL)DATENAME (Transact-SQL)

S’applique à :Applies to: ouiSQL ServerSQL Server (toutes les versions prises en charge) yesSQL ServerSQL Server (all supported versions) OuiAzure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database OuiAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance ouiAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics ouiParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data WarehouseS’applique à :Applies to: ouiSQL ServerSQL Server (toutes les versions prises en charge) yesSQL ServerSQL Server (all supported versions) OuiAzure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database OuiAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance ouiAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics ouiParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse

Cette fonction retourne une chaîne de caractères représentant la valeur datepart spécifiée de l’argument date spécifié.This function returns a character string representing the specified datepart of the specified date.

Pour obtenir une vue d’ensemble de tous les types de données et fonctions de date et d’heure , consultez Types de données et fonctions de date et d’heure (Transact-SQL)Transact-SQLTransact-SQL.See Date and Time Data Types and Functions (Transact-SQL) for an overview of all Transact-SQLTransact-SQL date and time data types and functions.

Icône Lien de rubrique Conventions de la syntaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SyntaxeSyntax

DATENAME ( datepart , date )  

Notes

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 et versions antérieures, consultez Versions antérieures de la documentation.To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

ArgumentsArguments

datepartdatepart
Partie spécifique de l’argument date que DATENAME retourne.The specific part of the date argument that DATENAME will return. Ce tableau répertorie tous les arguments datepart valides.This table lists all valid datepart arguments.

Notes

DATENAME n’accepte pas d’équivalents de variables définis par l’utilisateur pour les arguments datepart.DATENAME does not accept user-defined variable equivalents for the datepart arguments.

datepartdatepart AbréviationsAbbreviations
yearyear yy, yyyyyy, yyyy
quarterquarter qq, qqq, q
monthmonth mm, mmm, m
dayofyeardayofyear dy, ydy, y
dayday dd, ddd, d
weekweek wk, wwwk, ww
weekdayweekday dw, wdw, w
hourhour hhhh
minuteminute mi, nmi, n
secondsecond ss, sss, s
millisecondmillisecond msms
microsecondmicrosecond mcsmcs
nanosecondnanosecond nsns
TZoffsetTZoffset tztz
ISO_WEEKISO_WEEK ISOWK, ISOWWISOWK, ISOWW

datedate

Expression qui peut être résolue en l’un des types de données suivants :An expression that can resolve to one of the following data types:

  • datedate
  • datetimedatetime
  • datetimeoffsetdatetimeoffset
  • datetime2datetime2
  • smalldatetimesmalldatetime
  • timetime

Pour date, DATENAME accepte une expression de colonne, une expression, un littéral de chaîne ou une variable définie par l’utilisateur.For date, DATENAME will accept a column expression, expression, string literal, or user-defined variable. Pour éviter toute ambiguïté, utilisez des années à quatre chiffres.Use four-digit years to avoid ambiguity issues. Pour obtenir des informations sur les années à deux chiffres, consultez Configurer l’option de configuration du serveur two digit year cutoff.See Configure the two digit year cutoff Server Configuration Option for information about two-digit years.

Type de retourReturn Type

nvarcharnvarchar

Valeur de retourReturn Value

  • Chaque datepart et ses abréviations retournent la même valeur.Each datepart and its abbreviations return the same value.

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.The return value depends on the language environment set by using SET LANGUAGE, and by the Configure the default language Server Configuration Option of the login. La valeur retournée dépend de SET DATEFORMAT si date est un littéral de chaîne de certains formats.The return value depends on SET DATEFORMAT if date is a string literal of some 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.SET DATEFORMAT does not change the return value when the date is a column expression of a date or time data type.

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.When the date parameter has a date data type argument, the return value depends on the setting specified by SET DATEFIRST.

Argument de la partie de date TZoffsetTZoffset datepart Argument

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.If the datepart argument is TZoffset (tz) and the date argument has no time zone offset, DATEADD returns 0.

Argument date smalldatetimesmalldatetime date Argument

Quand date a la valeur smalldatetime, DATENAME retourne les secondes sous la forme 00.When date is smalldatetime, DATENAME returns seconds as 00.

Valeur par défaut retournée pour une partie de date qui ne figure pas dans l'argument dateDefault Returned for a datepart That Is Not in the date Argument

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.If the data type of the date argument does not have the specified datepart, DATENAME will return the default for that datepart only if the date argument has a literal .

Par exemple, la combinaison année-mois-jour par défaut pour tout type de données date est 1900-01-01.For example, the default year-month-day for any date data type is 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.This statement has date part arguments for datepart, a time argument for date, and DATENAME returns 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.If date is specified as a variable or table column, and the data type for that variable or column does not have the specified datepart, DATENAME will return error 9810. Dans l’exemple suivant, la variable @t a le type de données time.In this example, variable @t has a time data type. L’exemple échoue car la partie année de la date n’est pas valide pour le type de données time :The example fails because the date part year is invalid for the time data type:

DECLARE @t time = '12:10:30.123';   
SELECT DATENAME(year, @t);  

NotesRemarks

Utilisez DATENAME dans les clauses suivantes :Use DATENAME in the following clauses:

  • GROUP BYGROUP BY
  • HAVINGHAVING
  • ORDER BYORDER BY
  • SELECT <list>SELECT <list>
  • WHEREWHERE

Dans SQL Server 2019 (15.x)SQL Server 2019 (15.x), DATENAME convertit des littéraux de chaîne implicitement en type datetime2.In SQL Server 2019 (15.x)SQL Server 2019 (15.x), DATENAME implicitly casts string literals as a datetime2 type. En d’autres termes, DATENAME ne prend pas en charge le format YDM quand la date est passée sous forme de chaîne.In other words, DATENAME does not support the format YDM when the date is passed as a string. Vous devez caster explicitement la chaîne en type datetime ou smalldatetime pour utiliser le format AJM.You must explicitly cast the string to a datetime or smalldatetime type to use the YDM format.

ExemplesExamples

L’exemple suivant retourne les parties de la date spécifiée.This example returns the date parts for the specified date. Remplacez une valeur datepart de la table pour l’argument datepart dans l’instruction SELECT :Substitute a datepart value from the table for the datepart argument in the SELECT statement:

SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');

Voici le jeu de résultats obtenu.Here is the result set.

datepartdatepart Valeur retournéeReturn value
year, yyyy, yyyear, yyyy, yy 20072007
quarter, qq, qquarter, qq, q 44
month, mm, mmonth, mm, m OctobreOctober
dayofyear, dy, ydayofyear, dy, y 303303
day, dd, dday, dd, d 3030
week, wk, wwweek, wk, ww 4444
weekday, dwweekday, dw MardiTuesday
hour, hhhour, hh 1212
minute, nminute, n 1515
second, ss, ssecond, ss, s 3232
millisecond, msmillisecond, ms 123123
microsecond, mcsmicrosecond, mcs 123456123456
nanosecond, nsnanosecond, ns 123456700123456700
TZoffset, tzTZoffset, tz +05:10+05:10
ISO_WEEK, ISOWK, ISOWWISO_WEEK, ISOWK, ISOWW 4444

Azure Synapse Analytics (SQL Data Warehouse)Azure Synapse Analytics (SQL Data Warehouse) et Parallel Data WarehouseParallel Data Warehouseand Parallel Data WarehouseParallel Data Warehouse

L’exemple suivant retourne les parties de la date spécifiée.This example returns the date parts for the specified date. Remplacez une valeur datepart de la table pour l’argument datepart dans l’instruction SELECT :Substitute a datepart value from the table for the datepart argument in the SELECT statement:

SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');  

Voici le jeu de résultats obtenu.Here is the result set.

datepartdatepart Valeur retournéeReturn value
year, yyyy, yyyear, yyyy, yy 20072007
quarter, qq, qquarter, qq, q 44
month, mm, mmonth, mm, m OctobreOctober
dayofyear, dy, ydayofyear, dy, y 303303
day, dd, dday, dd, d 3030
week, wk, wwweek, wk, ww 4444
weekday, dwweekday, dw MardiTuesday
hour, hhhour, hh 1212
minute, nminute, n 1515
second, ss, ssecond, ss, s 3232
millisecond, msmillisecond, ms 123123
microsecond, mcsmicrosecond, mcs 123456123456
nanosecond, nsnanosecond, ns 123456700123456700
TZoffset, tzTZoffset, tz +05:10+05:10
ISO_WEEK, ISOWK, ISOWWISO_WEEK, ISOWK, ISOWW 4444

Voir aussiSee also

CAST et CONVERT (Transact-SQL)CAST and CONVERT (Transact-SQL)