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

Comment formater la date et l'heure dans SQL Server

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() .