基于千位(.00X)小数点的T-SQL条件逻辑

时间:2013-10-10 18:54:54

标签: sql sql-server tsql

我正在尝试使用基于千分之一十进制数的Round或Ceiling方法。 如何在T-SQL存储过程中编写条件? 提前谢谢!

示例:

如果我有这个号码: 1,793.5123611111 我想使用Round(变量,2,1)使其变为1,793。 51 所以千分之一小数不会四舍五入。

如果我有这个号码: 11,80620619333

我想使用天花板(可变* 100)/ 100使它变成11,806。 21 所以千分之一小数就会结束。

感谢。

2 个答案:

答案 0 :(得分:0)

目前的数据类型是什么? VARCHAR?

你可以试试这个

DECLARE @a VARCHAR(100) = '11,806.20619333'

PRINT CONVERT(VARCHAR(100),CAST(@a AS MONEY),1)

答案 1 :(得分:0)

在没有第三个参数的情况下使用ROUND()。如果未指定第三个参数,则默认为0,这意味着舍入(任何其他值表示截断):

SELECT ROUND(Value, 2)
FROM (
  SELECT 1793.5123611111
  UNION ALL
  SELECT 11806.20619333
) AS s (Value)
;

以上将产生这些结果:

--------
1793.51
11806.21