* FLOAT型にCASTする [#uf62b175]
** MySQLのCAST()はFLOATは指定できない [#a6f19796]
- CAST(1 AS FLOAT)はダメ。
- 指定できるのは、DECIMALやSIGNED、UNSIGNED、DATETIMEなど。
- https://dev.mysql.com/doc/refman/5.6/ja/cast-functions.html#function_cast
** FLOATの代わりにDECILAML()を指定する [#cb97914c]
MySQL> SELECT CAST(123 AS DECIMAL(10,2));
+----------------------------+
| CAST(123 AS DECIMAL(10,2)) |
+----------------------------+
| 123.00 |
+----------------------------+
1 row in set (0.00 sec)
** DECIMAL()の引数について [#uebe57ed]
** DECIMAL() [#uebe57ed]
MySQL> SELECT CAST(123 AS DECIMAL(10,2));
+----------------------------+
| CAST(123 AS DECIMAL(10,2)) |
+----------------------------+
| 123.00 |
+----------------------------+
MySQL> SELECT CAST(123 AS DECIMAL(3,2));
+---------------------------+
| CAST(123 AS DECIMAL(3,2)) |
+---------------------------+
| 9.99 |
+---------------------------+
- DECIMAL()の引数の1つ目が全体の桁数。2つ目が小数点以下の桁数。
- したがって、123をDECIMAL(3,2)とすると、123.00(全体5桁)とはならず、9.99(全体3桁)のようになる。
- https://dev.mysql.com/doc/refman/5.6/ja/fixed-point-types.html