2016-04-04 12 views
0
DECLARE a_varchar_variable varchar(20) DEFAULT "999999999999999"; 
DECLARE a_biginteger_variable BIGINT; 

In meiner mysql gespeicherte Prozedur bigint, dies funktioniert gut:wie varchar konvertiert in mysql

a_biginteger_variable = CONVERT(a_varchar_variable,UNSIGNED INT); 

Auf der anderen Seite, Dies ergibt einen Syntaxfehler:

a_biginteger_variable = CONVERT(a_varchar_variable,BIGINT); 

Ich würde gerne verstehen, was dieses Verhalten verursacht. und wie varchar in bigint konvertieren?

Es scheint eine wiederholte Frage auf Google zu sein, aber keine Antwort gefunden. was komisch ist, weil ich es einfach machen sollte.

+0

Nein. "int" ist ein 32-Bit-Wert, "bigint" ist 64-Bit. Sie können sie nicht zuverlässig vergleichen, doppelt so, wenn Sie nicht signierte vs. unterzeichnet. Und Ihre Syntaxfehler sind darauf zurückzuführen, dass bigint kein gültiges Konvertierungsziel ist: http://dev.mysql.com/doc/refman/5.7/en/cast-functions.html#function_convert –

+0

danke für Ihre schnelle Antwort. Ich bekomme immer noch nicht, was getan werden sollte, wenn ich Varchar in Bigint konvertieren möchte. Ich konnte bei Google nichts finden, was komisch ist, weil ich dachte, es sollte einfach sein. –

Antwort

-1

Vor allem musste ich varchar ändern, um int, weil ich in einer Schleife über eine bestimmte Variable wollte ..

versuchte ich 1 auf varchar als Lösung hinzugefügt und es funktionierte in der Schleife feinen

a_varchar_variable = a_varchar_variable + 1