sql - 从 SQL Server 中的十进制中删除尾随零

标签 sql tsql sql-server-2008 formatting decimal

我有一列 DECIMAL(9,6),即它支持像 999,123456 这样的值。

但是当我插入像 123,4567 这样的数据时,它变成了 123,456700

如何去除那些零?

最佳答案

decimal(9,6) 在逗号右侧存储 6 位数字。是否显示尾随零是格式决定,通常在客户端实现。

但由于 SSMS 格式 float 没有尾随零,您可以通过将 decimal 转换为 float 来删除尾随零:

select 
    cast(123.4567 as DECIMAL(9,6))
,   cast(cast(123.4567 as DECIMAL(9,6)) as float)

打印:

123.456700  123,4567

(我的小数分隔符是逗号,但 SSMS 用点格式化十进制。显然是 known issue 。)

关于sql - 从 SQL Server 中的十进制中删除尾随零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2938296/

相关文章:

sql - 列出具有最大长度和最大长度的所有 SQL 列

SQL Server 多个 REPLACE with #temp 表

SQL获取不在列表中的项目

sql - 使用sql查询找出日夜数

php - 使用具有多个 y 轴的 SQL Server 数据库绘制流程图

sql - SQL 查询中前 10 行的问题?

sql - 使用 SQL 获取 3 分钟前的所有事务

sql - T-SQL - 如何在字符串中搜索第 n 个字符

sql - 选择刚刚插入的行

sql - 每当将项目添加到 Service Broker 队列时,如何执行存储过程?