In MariaDB FORMAT()
ist eine eingebaute String-Funktion, die die angegebene Zahl als String formatiert und zurückgibt.
Es erfordert zwei Argumente und akzeptiert ein optionales drittes Argument. Die erste ist die zu formatierende Zahl, die zweite die Dezimalstelle und die (optionale) dritte das Gebietsschema.
Syntax
Die Syntax lautet wie folgt:
FORMAT(num, decimal_position[, locale])
Wobei num
ist die Zahl, decimal_position
ist die Anzahl der Dezimalstellen, auf die die Zahl gerundet werden soll, und locale
ist ein optionales Gebietsschema, das zum Formatieren der Zahl verwendet wird (verschiedene Gebietsschemata verwenden unterschiedliche Konventionen zum Formatieren von Zahlen).
Beispiel
Hier ist ein einfaches Beispiel:
SELECT FORMAT(1234.5678, 2);
Ergebnis:
+----------------------+ | FORMAT(1234.5678, 2) | +----------------------+ | 1,234.57 | +----------------------+
Hier FORMAT()
ein Komma für ein Tausendertrennzeichen hinzugefügt. Es hat auch die Zahl auf zwei Dezimalstellen gerundet (weil ich 2 als zweites Argument angegeben habe).
Bruchteil entfernen
Um den Bruchteil (und den zugehörigen Dezimalpunkt) zu entfernen, verwenden Sie 0
(Null) als zweites Argument:
SELECT FORMAT(1234.5678, 0);
Ergebnis:
+----------------------+ | FORMAT(1234.5678, 0) | +----------------------+ | 1,235 | +----------------------+
Hinzufügen von Dezimalstellen
Wenn das zweite Argument eine höhere Zahl als die Anzahl der Dezimalstellen im ersten Argument ist, werden dem Ergebnis Nullen hinzugefügt, sodass es die gewünschte Anzahl an Dezimalstellen widerspiegelt:
SELECT
FORMAT(1234, 2),
FORMAT(1234.56, 4),
FORMAT(1234.56, 8);
Ergebnis:
+-----------------+--------------------+--------------------+ | FORMAT(1234, 2) | FORMAT(1234.56, 4) | FORMAT(1234.56, 8) | +-----------------+--------------------+--------------------+ | 1,234.00 | 1,234.5600 | 1,234.56000000 | +-----------------+--------------------+--------------------+
Geben Sie ein Gebietsschema an
Sie können optional ein drittes Argument übergeben, um das Gebietsschema anzugeben, das für die Formatierung verwendet werden soll.
Beispiel:
SELECT
FORMAT(1234567.8912, 2, 'da_DK') AS "da_DK",
FORMAT(1234567.8912, 2, 'rm_CH') AS "rm_CH",
FORMAT(1234567.8912, 2, 'es_BO') AS "es_BO",
FORMAT(1234567.8912, 2, 'ar_SA') AS "ar_SA";
Ergebnis:
+--------------+--------------+------------+------------+ | da_DK | rm_CH | es_BO | ar_SA | +--------------+--------------+------------+------------+ | 1.234.567,89 | 1'234'567,89 | 1234567,89 | 1234567.89 | +--------------+--------------+------------+------------+
Nicht numerische Argumente
FORMAT()
formatiert nur Zahlen. Die Angabe eines Strings ergibt beispielsweise 0
zurückgegeben wird. Es ist jedoch immer noch mit der angegebenen Dezimalstelle formatiert:
SELECT
FORMAT("Twenty five", 0),
FORMAT("Twenty five", 2),
FORMAT("Twenty five", 4);
Ergebnis:
+--------------------------+--------------------------+--------------------------+ | FORMAT("Twenty five", 0) | FORMAT("Twenty five", 2) | FORMAT("Twenty five", 4) | +--------------------------+--------------------------+--------------------------+ | 0 | 0.00 | 0.0000 | +--------------------------+--------------------------+--------------------------+
Null-Argumente
Bereitstellung von null
da eines der ersten beiden Argumente zu null
führt :
SELECT
FORMAT(null, 2),
FORMAT(25, null);
Ergebnis:
+-----------------+------------------+ | FORMAT(null, 2) | FORMAT(25, null) | +-----------------+------------------+ | NULL | NULL | +-----------------+------------------+
Aber Übergabe von null
da das dritte Argument das Ergebnis nicht beeinflusst:
SELECT FORMAT(25, 2, null);
Ergebnis:
+---------------------+ | FORMAT(25, 2, null) | +---------------------+ | 25.00 | +---------------------+
Nur ein Argument angeben
Die Angabe eines einzelnen Arguments führt zu einem Fehler:
SELECT FORMAT(1234.56);
Ergebnis:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
Keine Argumente angeben
Aufruf von FORMAT()
ohne Argumente zu übergeben führt zu einem Fehler:
SELECT FORMAT();
Ergebnis:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1