2012-04-03 10 views

Antwort

2

Ein Kollege fand die Antwort:

SELECT 0.0 + '0' as ZERO 

funktioniert der Trick. NICHT verdoppeln dezimal

+0

er zurückkehrt. –

+0

@NadeemJamali: gerade versucht es noch einmal und es gibt ein Doppel zurück. Vielleicht ist das meine Version von mysql v5.1.45 mit MyISAM –

1

Wenn CAST verwenden, kann der Typ sein, eine der folgenden Möglichkeiten:

 
BINARY[(N)] 
CHAR[(N)] 
DATE 
DATETIME 
DECIMAL[(M[,D])] 
SIGNED [INTEGER] 
TIME 
UNSIGNED [INTEGER] 

So würde Ihr Beispiel sein:

SELECT CAST(0 as DECIMAL) as ZERO 

Sie können Geben Sie optional die zulässige Genauigkeit an, z. B .:

SELECT CAST(0 as DECIMAL(18,8)) as ZERO 

Referenz: http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html

0

I Allways dezimale verwendet, in der Dokumentation: „Die maximale Reichweite der dezimalen Werte ist dieselbe wie für DOUBLE“

so tun, um eine SELECT Besetzung (0 als Dezimalzahl) als Null ist;

0

Sie es nicht können, werden die Typen, die Sie hier dokumentiert gegossen werden können: MySQl Docs - Cast Functions

Wenn Sie beschreiben genauer, was Sie archivieren möchten wäre es einfacher für uns zu beantworten.