Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/07/2004, 15h38   #1
Candidat au titre de Membre du Club
 
Inscription : juillet 2004
Messages : 30
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 30
Points : 13
Points : 13
Par défaut Formatage des nombres à l'affichage

Pas moyen de trouver une instruction pour afficher par exemple 1234 (le champ est defini comme decimal(12,2)) sous la forme 1234.00.
J'obtiens:
round(1234,2) 1234
1234*1.00 1234
il ya bien format(1234,2) mais
- le résultat est traité comme une chaine et donc justifié à gauche
- le format d'affichage est anglo saxon donc j'obtiens 1,234.00 je voudrais un format français: 1 234.00 (comme défini dans mes paramètres régionaux) et aligné à droite pour les colonnes de chiffres

Merci d'avance

Nicolas
nbutin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2004, 19h03   #2
Membre émérite
 
Inscription : mai 2004
Messages : 709
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 709
Points : 852
Points : 852
Tu tiens absolument à formater dans MySql ? Sinon dans PHP tu as plusieurs fonctions qui feraient l'affaire format_number() ou sprintf().
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
ripat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2004, 21h45   #3
Candidat au titre de Membre du Club
 
Inscription : juillet 2004
Messages : 30
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 30
Points : 13
Points : 13
Oui. Je n'utilise pas PHP. En fait ma requête est envoyée par un prog C++ vers une base MySQL. J'ai des possibilités de formater l'affichage au niveau du prog mais ça me ferait gagner pas mal de temps si une instruction me permettait d'avoir la réponse directement formatée.

Nicolas
nbutin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2004, 10h54   #4
Membre émérite
 
Inscription : mai 2004
Messages : 709
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 709
Points : 852
Points : 852
Et bien, je ne pense pas que ce soit possible de changer le formatage des nombres sans passer par des manipulations de chaînes. Ceci te donnera déjà le format 1 234,56 :
Code :
1
2
SELECT REPLACE(REPLACE(FORMAT(ton_nombre,2),',',' '),'.',',')
FROM ta_table
Bon, ce n'est pas aligné à droite, peut-être qu'avec la fonction lpad() en caractères non-proportionnels ? Comme ceci (un peu tordu mais ça marche):
Code :
1
2
3
4
5
6
7
8
SELECT LPAD(REPLACE(REPLACE(FORMAT(ton_nombre,2),',',' '),'.',','),15,' ') AS NombreFr
FROM ta_table
 
+--------------+
| NombreFr     |
+--------------+
|     1 234,56 |
+--------------+
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
ripat est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h29.


 
 
 
 
Partenaires

Hébergement Web