[Résolu] TO_CHAR() en MSSQL ?

TO_CHAR() en MSSQL ? [Résolu] - SQL/NoSQL - Programmation

Marsh Posté le 16-02-2009 à 15:21:38    

Bonjour,  
 
Je voudrais effectuer cette commande SQL :  
 

Code :
  1. SELECT TO_CHAR (myfield,'$9.999,99')


sur un serveur MSSQL, où la fonction TO_CHAR() n'existe pas.
 
Un peu de Google m'a appris que c'est CONVERT() ou CAST() que je dois employer, mais malgré une recherche dans la doc officielle MSDN, je ne vois pas comment effectuer la commande que je veux, c'est-à-dire :  
 
Sélectionner un champ INT, et formater l'output directement en SQL en y définissant les chiffres décimaux, et en insérant un symbole monétaire et un séparateur de milliers


Message édité par ZeBix le 18-02-2009 à 11:38:26
Reply

Marsh Posté le 16-02-2009 à 15:21:38   

Reply

Marsh Posté le 17-02-2009 à 10:41:13    

Petit up
 
Depuis hier j'ai trouvé pour le symbol monétaire :  
 

Code :
  1. SELECT '$'+CONVERT(CHAR, CONVERT(decimal(10,2), CONVERT(varbinary(20), myfield)) )

(tordu hein)
 
Mais je sèche encore un peu pour le séparateur des milliers, je ne vois pas comment faire ça en CONVERT() ou CAST()

Reply

Marsh Posté le 17-02-2009 à 21:04:22    

ton CONVERT peut avoir un troisième paramètre qui spécifie ce genre de format. Il faut regardé la doc pour voir quel paramètre tu peux utiliser. De mémoire, c'est s'agit d'un nombre qui représente le format.


---------------
quand un homme raisonne mal c'est qu'il n'a pas les données pour raisonner mieux (diderot)
Reply

Marsh Posté le 18-02-2009 à 11:38:13    

Effectivement, paramètre "style" , mais qui semble n'accepter que des valeurs précises et pré-enregistrées ...  
 
Il y a aussi la possibilité d'utilise le datatype "money" mais là on dépend des regional settings du serveur, et je trouve ça absolument nul point de vue portabilité (sachant que je suis en Belgique et que les serveurs sont tantôt en français, tantôt en néerlandais , tantôt en allemand et parfois même en anglais!).
 
Bref, on s'est résolu à transtyper toutes les valeurs en string via C# et à faire nos opérations de formatages de string via ce medium, mais c'est bien dommage, car même si ça marche c'est moins "clean" :)


Message édité par ZeBix le 18-02-2009 à 11:38:57
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed