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 Fonctions de date et d'heure (Transact-SQL). Pour obtenir des informations et des exemples communs aux types de données et fonctions de date et d'heure, consultez Utilisation des données de date et d'heure.
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éviation(s)
year
yy, yyyy
quarter
qq, q
month
mm, m
dayofyear
dy, y
day
dd, d
week
wk, ww
weekday
dw
hour
hh
minute
mi, n
second
ss, s
millisecond
ms
microsecond
mcs
nanosecond
ns
TZoffset
tz
date
Est une 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 Option 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 en utilisant SET LANGUAGE et par la langue par défaut de 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.
Pour les versions de SQL Server ultérieures à SQL Server 2000, 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.
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');
La combinaison heure-minute-seconde par défaut pour le type de données time est 00:00:00. L'instruction suivante a des arguments de partie d'heure pour datepart, un argument de date pour date et retourne 0, 0, 0.
SELECT DATENAME(hour, '2007-06-01')
,DATENAME(minute, '2007-06-01')
,DATENAME(second, '2007-06-01');
Notes
DATENAME peut être utilisé dans la liste de sélection et les clauses WHERE, HAVING, GROUP BY et ORDER BY. Dans SQL Server 2008 R2, DATENAME convertit des littéraux de chaîne implicitement en type datetime2. Cela signifie que DATEDIFF ne prend plus en charge le format YDM lorsque la date est passée en tant que chaîne. Vous devez effectuer une conversion explicite en un 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 de retour |
---|---|
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 |