In SQL wie kann ich umwandeln einer Geld-Datentyp einem decimal?
Ich konvertieren möchten, eine Geld-Datentyp einem decimal, denn ich will aufnehmen und das Ergebnis auf 8 Dezimalstellen.
Beispielsweise in einem Kurs, mit dem Tisch sehe ich die rate gespeichert 2871047428.20 als Geld datatype; die Verwendung von Microsoft SQL Management Studio, ich möchte zu teilen, dass durch 10000000, um zu erreichen, das Ergebnis 287.10474282; aber dem Ergebnis bin ich eigentlich immer 287.1047.
Ich glaube, der Grund, ich bin immer nur die 4 Nachkommastellen ist, denn es ist das Geld der Datentyp, und daher denke ich, der Weg ist zu konvertieren, das in einen decimal-Datentyp....
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ein Vergleich der linken Spalte der dezimal-Wert, die Rechte Spalte die berechneten Geld Wert:
Siehe auch hier auf Stack Overflow:
splattne die Antwort ist fast richtig, bis auf zwei kleine änderungen:
Diese geben die richtige Antwort: 287.10474282. Was ich getan habe, ist die Veränderung der precision-Wert und das hinzufügen der ".0" an die division Wert.
Die einzige Sache, die mich verwirrt jetzt, ist die Tatsache ich habe den cast der Wert als dezimal - (34,6) statt der erwarteten decimal(34,8).
So, ich habe die Abfrage in einer anderen Art und Weise, die mehr Sinn für mich:
Finden, die für Sie arbeitet.
Du bist alle schlagen Skurrilitäten des dezimal-division
Hier ist meine Antwort auf ein anderer thread, T-SQL Dezimal-Teilung Genauigkeit
Und Sie müssen möglicherweise implizit float Konvertierungen zu, weil der Rangfolge der Datentypen wenn Sie 10000000.0