2016-05-24 9 views
0

数と列のMySQL

SELECT (6000.03 + '00') AS res; 

結果6000.03を与える表現ではなく、表現

SELECT (6000.00 + '00') AS res; 

は結果6000を与えます。 2番目の式で小数部分が破棄されるのはなぜですか?

+0

値を単純に追加する必要がある場合は、CAST()[関数](http://dev.mysql.com/doc/refman/5.7/en/cast-functions.html) –

+0

@ S.Kadakov、ありがとうございますあなたは、なぜ、それが起こるのか理解したい。 – Ksenia

+0

それは意味が全くないので、破棄されます。表示する場合は、書式設定された文字列を使用します。 –

答えて

0

データ型を変更せずに数値に文字列を追加することはできません。 MySQLは、あなたの選択に明示的な日付定義がないので、 '00'を数字に自動変換します。

2番目の例の小数部分は、6000.00 = 6000 =整数値として破棄されます。

小数点以下の桁数で定義されたテーブルの列でこの操作を行うと、MySQLは列の定義を上書きしないため、小数部は破棄されません。

+0

小数点(12,2)として定義されているテーブルの列でこの操作を行うと、小数部分も上の例と同様に破棄されます... – Ksenia