SQL查询截断到两位小数?

标签 sql sql-server tsql

我现在有一个相当大的查询,并且缺少一个元素...我需要将数据削减到小数点后两位(不需要四舍五入)。我用谷歌搜索,但无法使其适应当前的查询。

SELECT 
    FechaDeSistema, Code, 
    CASE 
        WHEN DR_Socio = @SocioNum THEN Cantidad 
    END as Debit, 
    CASE 
        WHEN CR_Socio = @SocioNum THEN Cantidad 
    END AS Credit, 
    CASE 
        WHEN DR_Socio = @SocioNum THEN BalanceDebito 
        WHEN CR_Socio = @SocioNum THEN BalanceCredito 
    END AS Balance 
FROM 
    Ledger 
WHERE 
    (Debito_Cuenta = @Acct) OR 
    (Credito_Cuenta = @Ncct) 
ORDER BY 
    FechaDeSistema DESC

我基本上需要将信用卡和借记卡“案例”(你是这么说的?)截断到小数点后两位。我怎样才能把它实现呢?提前致谢!

最佳答案

CASTing将会四舍五入。如果你确实想截断,可以使用带有截断选项的 ROUND,如下所示..

DECLARE @MyNum DECIMAL(19,4) = 100.1294

SELECT @MyNum 'MyNum'
, CAST(@MyNum AS DECIMAL(19,2)) 'Cast will round'
, ROUND(@MyNum,2,4) 'Round with truncate option'
, CAST(ROUND(@MyNum,2,4) AS DECIMAL(19,2)) 'Better Truncate'

关于SQL查询截断到两位小数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17618671/

相关文章:

mysql - 日期与 where 子句中的最大值的差异

php - cakephp 从旧数据值+新值保存更新数据

c# - 以下查询中 sql 注入(inject)的可能性

SQL-EX.ru 查询问题集 #28

sql-server - 类型提供程序无法连接到 localDB

sql - 恢复没有数据的数据库

sql - 在 SQL Server 2005/2008 中存储历史数据的最佳方式是什么?

sql - 所有(用户定义的标量)函数及其依赖项的列表

c# - 如何在 EF 中执行日期部分比较

mysql - 具有类似数组支持的数据库?