SQL中float转varchar并去掉小数点后的值

Posted

技术标签:

【中文标题】SQL中float转varchar并去掉小数点后的值【英文标题】:Convert float to varchar in SQL and remove the value after decimal 【发布时间】:2021-10-06 09:15:56 【问题描述】:

我有一个包含品牌 ID 的表,如下所示: BrandID 存储为浮点数。

| BrandID | 
| -------- | 
| 1000962.000000   | 
| 1000565.000000   | 

如何将此品牌 ID 转换为 varchar(11) 并删除 .(dot) 之后的值 我想要的是:

| BrandID  | 
| -------- | 
| 1000962  | 
| 1000565  | 

我试过了 SELECT CAST([brand ID] AS Varchar) 但失败并得到另一个错误 字符串或二进制数据将被截断。 如何删除之后的值。然后将其转换为varchar? 非常感谢。

【问题讨论】:

这能回答你的问题吗? How to convert float to varchar in SQL Server 请将您正在使用的数据库的标签添加到您的问题中。 Varchar 不是指 varchar(1) 吗?你需要一个更长的目标! 理想情况下,您应该将列更改为 int。而且它看起来更像是一个小数列,而不是浮点数。 【参考方案1】:

您应该先将float 转换为int,然后再将其转换为nvarchar

试试这个:

SELECT CAST(CAST([BrandID] AS INT) AS NVARCHAR)

【讨论】:

以上是关于SQL中float转varchar并去掉小数点后的值的主要内容,如果未能解决你的问题,请参考以下文章

SqlServer中decimal,float 和 real 数据类型的区别

oracle FM去掉了小数点后的0,怎么去掉小数点?

sql 去掉小数点最后的零

小技巧

sqlserver怎么把小数点后面多余的0去掉

sqlserver怎么把小数点后面多余的0去掉