2016-05-15 2 views
0

Ich versuche, Zahlenwerte in der Datenbank gespeichert als Cent in Dollar und behalten Sie 2 Dezimalstellen.SQL behalten zwei Dezimalstellen für Ganzzahlen nach dem Konvertieren von Cent in Dollar

Der folgende Code wird nur funktionieren, wenn v_cent/100.00 NICHT

SELECT CAST(ROUND(v_cent/100.00, 2) AS NUMERIC(8,2)) FROM DUAL; 

ganze Zahl Wenn v_cent = 20000 dann ist das Ergebnis 200

ist Wie kann ich zwei Dezimalstellen behalten, auch wenn das Ergebnis ganze Zahl?

+0

Die 2 Dezimalstellen sind vorhanden. Sie werden nicht angezeigt, weil dort nichts ist, wenn die Zahl ganz ist. Wenn Sie es zeigen, können Sie es formatieren. https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#i16209 – Mottor

Antwort

0

Verwenden to_char(), sagt, dass dies zu einem Ausgabeformat mit zwei Dezimalstellen konvertieren:

select to_char(v_cent/100.0, 'FM999999.99') 
from dual; 

Wie für Ihre Formulierung ist es das Richtige zu tun. Das einzige Problem ist, dass die Dezimalstellen nicht standardmäßig ausgedruckt werden.

+0

Danke für den Hinweis. Das Ergebnis ist "200". Verwenden Sie Ihre Aussage. hmm, interessant ... – Dorisacat

+1

@Dorisacat verwenden 'FM999990.00' https://docs.oracle.com/cd/B28359_01/server.111/b28286/sql_elements004.htm#i34570 – Mottor

+0

@Mottor Oh, hab es. Jetzt verstehe ich die Implikation hinter 0 und 9. Vielen Dank! – Dorisacat

Verwandte Themen