提问者:小点点

将mysql十进制数转换为千克单位


我在mysql数据库中添加具有decimal(15,8)类型的length名称。 现在我有12.000000,需要转换成像12这样的米单位。 我怎么才能转换这个?!


共2个答案

匿名用户

阅读cast和convert-https://dev.mysql.com/doc/refman/8.0/en/cast-functions.html

举个例子

select cast(12.00000000 as unsigned)

+-------------------------------+
| cast(12.00000000 as unsigned) |
+-------------------------------+
|                            12 |
+-------------------------------+
1 row in set (0.000 sec)

匿名用户

答案有些复杂。

第一种选择是使用强制转换

但是这会导致值的舍入,如果您不想这样做,您必须将intgo转换为字符串并使用SUBSTRING_I'NDEX

CREATE TABLE table1 (
  `value` DECIMAL(15,8)
);
INSERT INTO table1
  ( `value`)
VALUES
  (12.00001),
  (12.50001);
SELECT CAST(value as unsigned) FROM table1
| CAST(value as unsigned) |
| ----------------------: |
|                      12 |
|                      13 |
SELECT SUBSTRING_INDEX(CONVERT(value, CHAR),'.',1) FROM table1
| SUBSTRING_INDEX(CONVERT(value, CHAR),'.',1) |
| :------------------------------------------ |
| 12                                          |
| 12                                          |

db<;>此处小提琴