ここに少し問題があります。 私は定期的にMySQLテーブルの通貨の自動更新を行っています。生成されたクエリの 一部は次のとおりです。MySQLクエリの不思議なリターン
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';
私はオンラインサービスから値を取得します。私はそれを打破する場合は、このクエリは、私は、例えば、これらの値を直接クエリを実行しようとした場合の変換は、これらの
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
を返し、
Out of range value for column (null) at row 1
が返されます
UPDATE ara_curr SET curr_xchange='0,00016', curr_rev_xchange='6221,27000' WHERE curr_name='IDR';
完全に正常に実行されます。
これについてのアイデアは?
まあ、curr_xchangeとcurr_rev_xchangeはVARCHARです。 しかし、キャスティングは機能しません。 なぜ彼らはDECIMALとして設定されていなかったのか分かりませんが、大きな問題はありません。 – nnikolov06