我在mysql数据库中添加具有decimal(15,8)
类型的length
名称。 现在我有12.000000
,需要转换成像12
这样的米单位。 我怎么才能转换这个?!
阅读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<;>此处小提琴