Dans SQL Server, vous pouvez utiliser le T-SQL FORMAT()
fonction pour formater la date et/ou l'heure. Fournissez simplement deux arguments ; la date/heure et le format à utiliser.
Le format est fourni sous forme de chaîne de format. Une chaîne de format définit comment la sortie doit être formatée.
Le FORMAT()
La fonction accepte également un argument "culture" facultatif, qui vous permet de spécifier une langue/paramètres régionaux auxquels les résultats doivent adhérer.
Exemple de base
Voici un exemple basique d'utilisation du FORMAT()
fonction pour formater une date.
Date brute
Tout d'abord, voici à quoi ressemble la date brute. Si nous exécutons l'instruction suivante :
SELECT GETDATE();
Nous obtenons un résultat qui ressemble à ceci :
2018-05-03 02:36:54.480
Date formatée
Maintenant, nous pouvons utiliser le FORMAT()
fonction pour formater cette date et cette heure dans notre format préféré. Par exemple, nous pourrions faire ceci :
SELECT FORMAT( GETDATE(), 'D');
Ce qui donne ceci :
Thursday, May 3, 2018
Ce n'est qu'un des nombreux formats que nous pourrions choisir. En voici une autre :
SELECT FORMAT( GETDATE(), 'd');
Ce qui donne ceci :
5/3/2018
Les résultats réels varieront en fonction de la culture utilisée. Par défaut, la langue de la session en cours est utilisée, mais vous pouvez également la remplacer par un troisième argument ("culture").
Définir un paramètre régional
Nous pourrions ajouter un troisième argument ("culture") au code ci-dessus pour déterminer les paramètres régionaux à utiliser pour le format de la date.
Nous pourrions donc faire ceci par exemple :
SELECT FORMAT( GETDATE(), 'd', 'en-gb');
Ce qui donne ceci :
5/3/2018
Voici un autre exemple :
SELECT FORMAT( GETDATE(), 'd', 'zh-cn');
Ce qui donne ceci :
2018/5/3
Si la culture l'argument n'est pas fourni, la langue de la session en cours est utilisée.
Voici comment trouver la langue de la session en cours et comment la définir.
Notez que la langue actuelle sera généralement la même que la langue par défaut de l'utilisateur, mais cela peut ne pas être le cas si l'utilisateur a changé la langue actuelle en utilisant SET LANGUAGE
. Dans tous les cas, vous pouvez également savoir quelle est la langue par défaut.
Comme vous pouvez l'imaginer, vous pourriez obtenir des résultats assez différents en fonction de votre langue actuelle ou de la valeur de tout argument de « culture ». Voir Comment les paramètres de langue peuvent affecter vos résultats FORMAT() pour plus d'exemples.
Extraire le mois/la semaine/l'année
Vous pouvez utiliser le FORMAT()
fonction pour renvoyer uniquement la partie mois de la date, ou la semaine, ou l'année selon les besoins.
Notez que ceux-ci sont sensibles à la casse. Par exemple, MMM
formate le mois différemment en mmm
.
Mois
Exemple de code pour renvoyer la partie mois :
SELECT FORMAT( GETDATE(), 'MMM');
Résultat :
May
Année
Exemple de code pour renvoyer la partie année :
SELECT FORMAT( GETDATE(), 'yyyy');
Résultat :
2018
Jour
Exemple de code pour renvoyer la partie jour :
SELECT FORMAT( GETDATE(), 'dddd');
Résultat :
Thursday
Extraire le temps
Vous pouvez également utiliser le FORMAT()
fonction pour renvoyer l'heure dans un format spécifié.
Voici un exemple :
SELECT FORMAT( GETDATE(), 'hh.mm');
Résultat :
03.37
L'indicateur AM/PM
Vous pouvez également ajouter tt
pour inclure l'indicateur AM/PM :
SELECT FORMAT( GETDATE(), 'hh.mm tt');
Résultat :
03.37 AM
Combiner des chaînes de format
Vous pouvez également combiner ces chaînes de format pour fournir votre propre format de date personnalisé. Exemple :
SELECT FORMAT( GETDATE(), 'hh.mm tt dddd, dd MMMM, yyyy');
Résultat :
03.41 AM Thursday, 03 May, 2018
Référence des spécificateurs de format de date et d'heure
Les articles suivants contiennent tous les spécificateurs de format de date et d'heure qui peuvent être utilisés avec le FORMAT()
fonction dans SQL Server, ainsi que des exemples T-SQL :
- Chaînes de format de date et d'heure standard
- Chaînes de format de date et d'heure personnalisées
Ce sont les mêmes spécificateurs de format de date et d'heure qui sont pris en charge par le .NET Framework (le FORMAT()
s'appuie sur le .NET Framework).
Référence des spécificateurs de format numérique
Les articles suivants contiennent tous les spécificateurs de format numérique que vous pouvez utiliser avec le FORMAT()
fonction (c'est-à-dire pour formater les nombres) :
- Chaînes de format numérique standard
- Chaînes de format numérique personnalisées
Ce sont les mêmes spécificateurs de format numérique qui sont pris en charge par le .NET Framework.
Autres fonctions de date
T-SQL inclut également un tas d'autres fonctions qui vous aident à extraire des parties de dates. Celles-ci incluent des fonctions telles que DAY()
, MONTH()
, YEAR()
, DATEPART()
, et DATENAME()
.