0
SELECT (6000.03 + '00') AS res;
結果6000.03
を与える表現ではなく、表現
SELECT (6000.00 + '00') AS res;
は結果6000
を与えます。 2番目の式で小数部分が破棄されるのはなぜですか?
SELECT (6000.03 + '00') AS res;
結果6000.03
を与える表現ではなく、表現
SELECT (6000.00 + '00') AS res;
は結果6000
を与えます。 2番目の式で小数部分が破棄されるのはなぜですか?
データ型を変更せずに数値に文字列を追加することはできません。 MySQLは、あなたの選択に明示的な日付定義がないので、 '00'を数字に自動変換します。
2番目の例の小数部分は、6000.00 = 6000 =整数値として破棄されます。
小数点以下の桁数で定義されたテーブルの列でこの操作を行うと、MySQLは列の定義を上書きしないため、小数部は破棄されません。
小数点(12,2)として定義されているテーブルの列でこの操作を行うと、小数部分も上の例と同様に破棄されます... – Ksenia
値を単純に追加する必要がある場合は、CAST()[関数](http://dev.mysql.com/doc/refman/5.7/en/cast-functions.html) –
@ S.Kadakov、ありがとうございますあなたは、なぜ、それが起こるのか理解したい。 – Ksenia
それは意味が全くないので、破棄されます。表示する場合は、書式設定された文字列を使用します。 –