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