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

Comment afficher une date au format allemand dans SQL Server (T-SQL)

Lors du formatage d'une date à l'aide du FORMAT() fonction dans SQL Server, la date sera formatée en fonction de la langue de votre session locale. Cependant, vous pouvez remplacer cela en spécifiant une culture à utiliser ou en utilisant un format de date personnalisé.

Cet article montre comment spécifier explicitement un format de date allemand en utilisant l'argument "culture" facultatif du FORMAT() une fonction. Il montre également comment utiliser votre propre format de date personnalisé si cela est plus souhaitable.

Exemple 1 - Format de date allemand court

Pour spécifier explicitement qu'une date doit être affichée au format allemand, utilisez de-de comme troisième argument. Ce troisième argument (facultatif) spécifie la culture à utiliser.

DECLARE @thedate date = '2020-12-01'
SELECT FORMAT(@thedate, 'd', 'de-de') Result;

Résultat :

+------------+
| Result     |
|------------|
| 01.12.2020 |
+------------+

Dans ce cas, j'ai utilisé un d minuscule comme deuxième argument. Il en résulte un format de date relativement court, le jour et le mois étant affichés sous forme de nombres.

Et comme nous utilisons le format allemand, le jour précède le mois et chaque élément de date est séparé par des points.

Exemple 2 – Format de date allemand long

Vous pouvez changer le deuxième argument en un D majuscule pour obtenir un format de date plus long, avec le mois en toutes lettres :

DECLARE @thedate date = '2020-12-01'
SELECT FORMAT(@thedate, 'D', 'de-de') Result;

Résultat :

+----------------------------+
| Result                     |
|----------------------------|
| Dienstag, 1. Dezember 2020 |
+----------------------------+

Exemple 3 – Format de date allemand personnalisé

Vous pouvez également utiliser un format de date personnalisé si nécessaire. Cela vous permet d'indiquer explicitement comment et où chaque composant de date va.

Exemple :

DECLARE @thedate date = '2020-12-01'
SELECT FORMAT(@thedate, 'ddd, d. MMM, yyyy', 'de-de') Result;

Résultat :

+------------------+
| Result           |
|------------------|
| Di, 1. Dez, 2020 |
+------------------+

Dans ce cas, j'utilise toujours l'argument culture pour spécifier explicitement la langue à utiliser.

Mon système utilise actuellement l'anglais américain, donc si j'omets l'argument culture de cet exemple, j'obtiens ce qui suit :

DECLARE @thedate date = '2020-12-01'
SELECT FORMAT(@thedate, 'ddd, d. MMM, yyyy') Result;

Résultat :

+-------------------+
| Result            |
|-------------------|
| Tue, 1. Dec, 2020 |
+-------------------+

Vérification de votre session en cours

Lors de l'utilisation du FORMAT() fonction, si l'argument culture n'est pas fourni, la langue de la session en cours est utilisée. Cette langue est définie soit implicitement, soit explicitement en utilisant le SET LANGUAGE déclaration.

Pour plus d'informations, voici 3 façons d'obtenir la langue de la session en cours dans SQL Server (T-SQL).

Consultez également Comment définir la langue actuelle dans SQL Server (T-SQL).