it-swarm.com.de

SQLite-Formatnummer mit immer 2 Nachkommastellen

Ich habe einige Tabellen in einer SQLite-Datenbank, die den FLOAT-Spaltentyp enthält. Jetzt möchte ich den Wert mit einer Abfrage abrufen und das Float-Feld immer mit 2 Dezimalstellen formatieren. Bisher habe ich geschrieben, dass ich wie folgt abfrage:

SELECT ROUND(floatField,2) AD field FROM table

dies gibt eine Ergebnismenge wie die folgende zurück: 

3.56
----
2.4
----
4.78
----
3

Ich möchte das Ergebnis immer mit zwei Dezimalstellen formatieren, also: 

3.56
----
2.40
----
4.78
----
3.00

Ist es möglich, immer mit 2 Dezimalstellen direkt aus der SQL-Abfrage zu formatieren? Wie geht das in SQLite? 

Vielen Dank.

23
aleroot

Sie können printf als:

SELECT printf("%.2f", floatField) AS field FROM table;

zum Beispiel:

sqlite> SELECT printf("%.2f", floatField) AS field FROM mytable;
3.56
2.40
4.78
3.00
sqlite>
44
user1129665

Bei älteren SQLite-Versionen, für die PRINTF nicht verfügbar ist, können Sie ROUND verwenden.

Zum Beispiel...

SELECT 
   ROUND(time_in_secs/1000.0/60.0, 2) || " mins" AS time,
   ROUND(thing_count/100.0, 2) || " %" AS percent
FROM
   blah
0
Oliver Pearmain

Aufgrund der Art und Weise, wie SQLite Zahlen intern speichert,

Sie wollen wahrscheinlich so etwas

select case when substr(num,length(ROUND(floatField,2))-1,1) = "." then num || "0" else num end from table;
0
Appleman1234