Comment formater une valeur numérique ou une date SQL server en C# ?

La question est fréquente sur le forum de développez.net\SQL serveur, un utilisateur souhaite savoir comment, et rarement quand, formater une date, un chiffre.

D’ abord, la question quand ?

Le SGBD gère des données brutes et l’ affichage ne doit pas le concerner. Inutile donc de chercher avec complication à formater à l’ intérieur du SGBD, aucune méthode n’ existe en interne. Dans le SGBD, vous pouvez changer les types au gré de vos calculs mais vous devez rester le plus standard possible en matière d’ affichage. De toute façon, les données passeront d’ abord par un applicatif ou un rapport pour être affichée, l’ affichage se fera alors au dernier moment.

Maintenant, abordons la question intéressante de ce sujet : comment ?

Nous travaillerons en C#.

Formatage d’ un nombre.

Double myDouble = 1234567890;
String myString = myDouble.ToString( "(###) ### - ####" );
// The value of myString is "(123) 456 – 7890".
 
int  MyInt = 42;
MyString = MyInt.ToString( "My Number = #" );
// In the U.S. English culture, MyString has the value:  
// "My Number = 42".

( extrait de MSDN )

Comme vous pouvez le voir, le type double et int possèdent une méthode ToString(param) qui permet de définir un affichage particulier. Le 0 s’affichera toujours, le # affichera le nombre, le ‘ sépare les milliers.

Formatage d’ une date.

DateTime MyDate = new DateTime(2000, 1, 1, 0, 0, 0);
String MyString = MyDate.ToString("dddd - d - MMMM");
// In the U.S. English culture, MyString has the value:  
// "Saturday - 1 - January".
MyString = MyDate.ToString("yyyy gg");
// In the U.S. English culture, MyString has the value: "2000 A.D.".

( extrait de MSDN )

De la même manière, que pour le type double, le type datetime possède une méthode ToString(param) qui permet de spécifier le format de la date. Le dddd affichera le jour, le MM affichera le mois sur 2 chiffres, le yyyy affichera l’année.

Maintenant, quand vous entendrez SQL Pro dire « Un SGBD ne fait pas de cosmétique », vous saurez comment gérer le problème, à condition évidemment de choisir comme langage le c#.

Laisser un commentaire