Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

3 façons d'obtenir le nom du jour à partir d'une date dans SQL Server (T-SQL)

Dans SQL Server, tout comme vous pouvez utiliser T-SQL pour obtenir le nom du mois à partir d'une date, vous pouvez également utiliser les mêmes méthodes pour obtenir le nom du jour. Par nom de jour, je veux dire lundi ou mardi par exemple, et non le numéro de la date ou le numéro du jour de la semaine (que vous pouvez également obtenir si vous en avez besoin).

Voici trois façons de renvoyer le nom du jour à partir d'une date dans SQL Server à l'aide de T-SQL.

La fonction FORMAT()

Le FORMAT() La fonction renvoie une valeur formatée dans le format spécifié et la culture facultative. Vous pouvez l'utiliser pour renvoyer le nom du jour à partir d'une date.

Voici un exemple :

DECLARE @date datetime2 = '2018-07-01';
SELECT FORMAT(@date, 'dddd') AS Result;

Résultat :

+----------+
| Result   |
|----------|
| Sunday   |
+----------+

Dans ce cas, nous avons fourni un format de dddd qui est pour le nom du jour.

Vous pouvez également obtenir le nom abrégé du jour en fournissant ddd comme deuxième argument :

DECLARE @date datetime2 = '2018-07-01';
SELECT FORMAT(@date, 'ddd') AS Result;

Résultat :

+----------+
| Result   |
|----------|
| Sun      |
+----------+

Vous pouvez également fournir un argument facultatif pour spécifier la culture.

Voici quelques exemples :

DECLARE @date datetime2 = '2018-07-01';
SELECT 
    FORMAT(@date, 'dddd', 'en-US') AS 'en-US',
    FORMAT(@date, 'dddd', 'es-es') AS 'es-es',
    FORMAT(@date, 'dddd', 'de-de') AS 'de-de',
    FORMAT(@date, 'dddd', 'zh-cn') AS 'zh-cn';

Résultat :

+---------+---------+---------+---------+
| en-US   | es-es   | de-de   | zh-cn   |
|---------+---------+---------+---------|
| Sunday  | domingo | Sonntag | 星期日  |
+---------+---------+---------+---------+

La fonction DATENAME()

Le DATENAME() la fonction est similaire à la DATEPART() fonction, sauf qu'elle renvoie le nom de la partie de date spécifiée (mais uniquement lorsqu'un nom est applicable). Cela signifie qu'il renvoie le nom du jour de la semaine ou le nom du mois si c'est ce dont vous avez besoin.

Voici comment renvoyer le composant jour de la semaine de la date :

DECLARE @date datetime2 = '2018-07-01';
SELECT DATENAME(weekday, @date) AS Result;

Résultat :

+----------+
| Result   |
|----------|
| Sunday   |
+----------+

La fonction scalaire ODBC DAYNAME()

Si pour une raison quelconque vous devez utiliser une fonction scalaire ODBC, il y en a une appelée DAYNAME() qui renvoie spécifiquement le nom du jour de la semaine à partir d'une date.

Exemple :

DECLARE @date datetime2 = '2018-07-01';
SELECT {fn DAYNAME(@date)} AS Result;

Résultat :

+----------+
| Result   |
|----------|
| Sunday   |
+----------+

Lorsque vous utilisez des fonctions scalaires ODBC dans T-SQL, elles sont entourées d'accolades ({} ) et le nom de la fonction est préfixé par fn .