Ich habe ein kleines Problem hier. Ich mache regelmäßig eine automatische Aktualisierung von Währungen in einer MySQL-Tabelle. Ein Teil der erzeugten Abfrage ist:Seltsame Rückkehr in MySQL Abfragen
UPDATE ara_curr SET
curr_xchange=REPLACE(CONVERT(CONVERT('1.60739',DECIMAL(9,5))/CONVERT('10000',DECIMAL(9,5)),DECIMAL(9,5)),'.',','),
curr_rev_xchange=REPLACE(CONVERT('6221.27',DECIMAL(9,5)),'.',',')
WHERE curr_name='IDR';
ich die Werte aus einem Online-Dienst zu bekommen. Doch diese Abfrage gibt
Out of range value for column (null) at row 1
Allerdings, wenn ich es brechen die Umsätze kehren diese
REPLACE(CONVERT('6221.27',DECIMAL(9,5)),'.',',') = 6221,27000
CONVERT('1.60739',DECIMAL(9,5)) = 1,60739
CONVERT('10000',DECIMAL(9,5)) = 9999,99999
CONVERT(CONVERT('1.60739',DECIMAL(9,5))/CONVERT('10000',DECIMAL(9,5)),DECIMAL(9,5)) = 0,00016
Und wenn ich versuchen, die Abfrage direkt mit diesen Werten laufen z.B.
UPDATE ara_curr SET curr_xchange='0,00016', curr_rev_xchange='6221,27000' WHERE curr_name='IDR';
Es läuft perfekt in Ordnung!
Irgendwelche Ideen dazu?
Nun sind die curr_xchange und curr_rev_xchange VARCHAR. Aber Casting funktioniert auch nicht. Ich bin mir nicht ganz sicher, warum sie nicht als DECIMAL festgelegt wurden, aber keine große Sache. – nnikolov06