Ich habe eine Spalte "DECIMAL(9,6)", d. h. sie unterstützt Werte wie 999 und 123456.
Wenn ich aber Daten wie 123,4567 einfüge, wird daraus 123,456700
Wie kann ich diese Nullen entfernen?
Ein decimal(9,6)
speichert 6 Ziffern auf der rechten Seite des Kommas. Ob nachstehende Nullen angezeigt werden oder nicht, ist eine Formatierungsentscheidung, die normalerweise auf der Client-Seite implementiert wird.
Da SSMS jedoch float
ohne abschließende Nullen formatiert, können Sie die abschließenden Nullen entfernen, indem Sie die decimal
in eine float
umwandeln:
select
cast(123.4567 as DECIMAL(9,6))
, cast(cast(123.4567 as DECIMAL(9,6)) as float)
druckt:
123.456700 123,4567
(Mein Dezimaltrennzeichen ist ein Komma, aber SSMS formatiert Dezimalzahlen mit einem Punkt. Offenbar ein bekanntes Problem).
SELECT REVERSE(ROUND(REVERSE(2.5500),1))
prints:
2.55
Versuchen Sie dies:
select Cast( Cast( (ROUND( 35.457514 , 2) *100) as Int) as float ) /100