number_format() mit MySQL
hey ich brauche eine Möglichkeit, um eine formatierte Zahl aus meiner Spalte decimal(23,2) NOT NULL DEFAULT '0.00'
in php, ich könnte mit dieser Funktion number_format('1111.00', 2, ',', '.');
würde es wieder 1.111,00
(in Deutschland , die wir verwenden, um zu definieren, Dezimalzahlen)
wie würde ich das in mysql? mit string ersetzt?
InformationsquelleAutor antpaw | 2009-12-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit performance-Einbußen, und wenn Sie brauchen todo es nur in SQL können Sie die
FORMAT
- Funktion und 3REPLACE
:Nach dem format ersetzen die
.
mit einem anderen char zum Beispiel@
, dann ersetzen Sie die,
mit einem.
und dann die chararacter Sie wählen, durch eine,
führen Sie für Ihr Beispiel zu1.111,00
Du bist willkommen 🙂
Dies ist nicht die beste Antwort! Es gibt die format-Funktion verfügbar, Blättern Sie nach unten und haben einen Blick an einigen der anderen Antworten, bevor Sie diese Lösung - die wichtige Sache zu beachten hier ist die LOCALE option zur Verfügung, die
format
Funktion, die Sie einstellen können, (e,g, de_DE für Deutsch)InformationsquelleAutor Patrick
http://blogs.mysql.com/peterg/2009/04/
In Mysql 6.1 Sie werden in der Lage sein zu tun, FORMAT(X,D [,locale_name] )
Als in
Denn nun diese Fähigkeit nicht vorhanden ist, obwohl Sie MÖGLICHERWEISE in der Lage sein, um Ihr Gebietsschema in Ihrer Datenbank meinen.ini-check it out.
Leider ist der Dritte parameter ist illegal in MariaDB 5.5.x
Hier ist die Liste der locale dev.mysql.com/doc/refman/5.7/en/locale-support.html
InformationsquelleAutor MindStalker
Können Sie
InformationsquelleAutor Alex
FORMAT(X,D) formatiert die Zahl X in ein format wie '#,###,###.##', gerundet auf D Dezimalstellen, und gibt das Ergebnis als string. Wenn D 0 ist, hat das Ergebnis keinen Dezimalpunkt oder bruchteilsanteil.
InformationsquelleAutor valli
Antonio ' s Antwort
ist falsch; es kann zu falschen Ergebnissen führen!
Zum Beispiel, wenn "Nummer" 12345.67, der string wäre:
statt
da-FORMAT(Zahl,0) - Runden "Zahl", wenn gebrochene Teil ist größer oder gleich 0,5 beträgt (wie in meinem Beispiel)!
Was Sie nutzen KÖNNTEN, ist
wenn Ihre MySQL - /MariaDB - FORMAT nicht unterstützt "locale_name" (siehe MindStalker post - Thx 4, pal). Hinweis: die FLOOR-Funktion die ich Hinzugefügt habe.
InformationsquelleAutor eyebeebai
Mindestens so weit zurück wie MySQL 5.5, die Sie verwenden können, format:
Aus der MySQL-docs:
https://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_format
Verfügbaren locales aufgelistet sind, an anderer Stelle in den docs:
https://dev.mysql.com/doc/refman/5.5/en/locale-support.html
InformationsquelleAutor Pete
wird das erstellen einer MySql-Funktion mit diesem Code:
InformationsquelleAutor Konstantin XFlash Stratigenas
Diese benötigen Sie:
Diese Lösung kann Ursache falsche Ergebnisse! Siehe Antwort von eyebeebai.
InformationsquelleAutor Antonio