sql-server - SQL Server 如何获取货币类型的小数位数?
问题描述
CostPrice
表格的列t1
是货币类型。
列中的数据CostPrice
如下:
141.1938
0.00
147.1041
119.592
1.23
我使用这个 sql 来获取十进制数字:
select distinct len(CostPrice-floor(CostPrice))-2 from t1;
但是结果只有2,这是不对的,实际上结果应该是2,3,4。
那么如何修复sql呢?
添加:
StackOverflow 不允许我标记标记,而是要求我编辑问题,所以:
此问题与此问题不重复。现有问题是关于“float”数据类型,而这个问题是关于“money”,像“existing anser”一样将“money”转换为“varchar”将始终返回相同的小数位数,所以它不回答这个问题问题。
解决方案
尝试这个
DECLARE
@money money = 141.1938
SELECT
@money
,SUBSTRING(CONVERT(varchar(20),@money,2), CHARINDEX('.', CONVERT(varchar(20),@money,2)) + 1, LEN(CONVERT(varchar(20),@money,2))) as RESULT
推荐阅读
- angular - TSlint 删除全局规则
- vba - How to assign a macro in a Word Document to open a PDF to specific page
- c# - StyleCopAnalyzers 会导致性能或安全问题吗?
- powershell - 无法从 powershell 执行 ps1 文件中的某些命令
- entity-framework - 列名“Genre_Id1”无效。在实体框架中
- flume-ng - 在执行水槽命令期间在 VM 中出现错误
- ruby-on-rails - 如何在 trix 图像路径中使用绝对 url?
- excel - VBA排序从大公式创建一个范围
- visual-studio-2017 - VS17 - NuGet 配置无效
- wpf - 在 ItemsControl 中设置项目的最小和最大高度