Konvertiert long decimal oder float varchar in SQL Server
Einem der Tisch, an dem ich versuche, die Abfrage hat ein Feld mit dem Typ decimal(38,19)
. Muss ich es konvertieren zu varchar
um für meine perl-DBI-Modul zu verarbeiten. Wie soll ich schreiben, die Konvertierung in SQL zu machen, damit es funktioniert? Speziell, wenn ich dies in SQL Server Management Studio:
select convert(varchar, 19040220000.0000000000000000000)
Bekomme ich:
Msg 8115, Ebene 16, Status 5, Zeile 1
Arithmetischer überlauffehler beim konvertieren von numerischen Daten Typ varchar.
Versuchte ich Runde die Zahl zuerst:
select convert(varchar, round(19040220000.0000000000000000000, 0))
aber das scheint nicht zu funktionieren (gleiche Fehlermeldung). In der Tat round()
scheint nicht zu haben eine Wirkung auf, dass die Anzahl aus irgendeinem Grund. Was soll ich tun? Thx.
- Nicht Sie müssen eine Länge für den Datentyp varchar, dh. verwenden Sie varchar(64)?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie nicht geben Sie eine Länge für Ihre
varchar
es standardmäßig 30 Zeichen im Falle einerCONVERT
Betrieb.Nicht lange genug, um zu halten Ihre 38-stellige Dezimalzahl. So geben Sie Ihrem
varchar
eine entsprechende Länge in derCONVERT
Aussage!!!!Versuchen Sie dies:
Benötigen Sie ein varchar mit einer Länge einzustellen, die größer als die Präzision, die Sie wollen, d.h.