Partager via


DATENAME (Transact-SQL)

Retourne une chaîne de caractères qui représente la datepart précisée de la date spécifiée.

Pour obtenir une vue d'ensemble de tous les types de données et fonctions de date et d'heure Transact-SQL, consultez Types de données et fonctions de date et d'heure (Transact-SQL).

Icône Lien de rubrique Conventions de la syntaxe Transact-SQL

Syntaxe

DATENAME ( datepart , date )

Arguments

  • datepart
    Partie de la date à retourner. Le tableau suivant répertorie tous les arguments datepart valides. Les équivalents de variables définis par l'utilisateur ne sont pas valides.

    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 une valeur time, date, smalldatetime, datetime, datetime2 ou datetimeoffset. date peut être une expression, une expression de colonne, une variable définie par l'utilisateur ou un littéral de chaîne.

    Pour éviter toute ambiguïté, représentez les années à l'aide de quatre chiffres. Pour plus d'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 de retour dépend de l'environnement de langage défini à l'aide de SET LANGUAGE et de Configurer l'option de configuration du serveur Langue par défaut pour la connexion. La valeur de retour dépend de SET DATEFORMAT si date est un littéral de chaîne de certains formats. SET DATEFORMAT n'affecte 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 date, la valeur de retour dépend du paramètre spécifié en utilisant 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, la valeur 0 est retournée.

Argument date smalldatetime

Lorsque date est de type smalldatetime, les secondes sont retournées 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 le datepart spécifié, la valeur par défaut pour ce datepart sera retournée uniquement lors de la spécification d'un littéral pour date.

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 date pour datepart, un argument d'heure pour date et 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 date est spécifié comme variable ou colonne de table et que datepart n'est pas spécifié pour le type de données de cette variable ou colonne, l'erreur 9810 est retournée. L'exemple de code suivant échoue car la partie année de la date n'est pas valide pour le type de données time déclaré pour la variable @t.

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

Notes

DATENAME peut être utilisé dans la liste de sélection, WHERE, HAVING, GROUP BY et les clauses ORDER BY.

Dans SQL Server 2012, DATENAME convertit des littéraux de chaîne implicitement en type datetime2. Cela signifie que DATENAME ne prend pas en charge le format YDM lorsque la date est transmise en tant que chaîne. Vous devez convertir explicitement la chaîne en type datetime ou smalldatetime pour utiliser le format YDM.

Exemples

L'exemple suivant retourne les parties de la date spécifiée.

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

Voici l'ensemble des 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

310

ISO_WEEK, ISOWK, ISOWW

44

Voir aussi

Référence

CAST et CONVERT (Transact-SQL)