mysql 字串轉小數
在日常開發中常常會遇到字串轉小數的需求,下面我們來介紹一下mysql的兩個滿足此要求的函式
CAST(expr AS type)
CONVERT(expr,type)
兩個函式的使用
mysql> select convert(39,decimal(18,2));
+---------------------------+
| convert(39,decimal(18,2)) |
+---------------------------+
| 39.00 |
+---------------------------+
1 row in set (0.00 sec)
mysql> select CAST(39 AS DECIMAL(18,2));
+----------------------------+
| CAST(39 AS DECIMAL(18,2)) |
+----------------------------+
| 39.00 |
+----------------------------+
1 row in set (0.00 sec)
欄位相乘保留兩位小數:
mysql> select convert(39.00*9100,decimal(18,2));
+-----------------------------------+
| convert(39.00*9100,decimal(18,2)) |
+-----------------------------------+
| 354900.00 |
+-----------------------------------+
1 row in set (0.00 sec)
mysql> select CAST(39.00* 9100 AS DECIMAL(18,2));
+------------------------------------+
| CAST(39.00* 9100 AS DECIMAL(18,2)) |
+------------------------------------+
| 354900.00 |
+------------------------------------+
1 row in set (0.00 sec)
在navigate軟體發現一個比較有趣的現象:
當設定 decimal精度的長度為 13、14這兩個數字時,實際顯示的結果是不一樣的。
也就是小於等於13 顯示的是不保留小數位,大於等於14則顯示保留小數位。這個大家在開發時需要留意