【问题标题】:T-SQL Conditional logic based on Thousandth ( .00X) decimal point基于千位 (.00X) 小数点的 T-SQL 条件逻辑
【发布时间】:2013-10-10 18:54:54
【问题描述】:

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

例子:

如果我有这个号码: 1,793.5123611111 我想使用 Round(Variable ,2,1) 使其变为 1,793。51 所以第 100 位小数不会四舍五入。

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

我想使用上限(变量 *100)/100 使其变为 11,806。21 所以第 100 位小数会四舍五入。

谢谢。

【问题讨论】:

    标签: sql sql-server tsql


    【解决方案1】:

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

    你可以试试这个

    DECLARE @a VARCHAR(100) = '11,806.20619333'
    
    PRINT CONVERT(VARCHAR(100),CAST(@a AS MONEY),1)
    

    【讨论】:

      【解决方案2】:

      使用不带第三个参数的ROUND()。第三个参数不指定时,默认为0,表示舍入(任何其他值表示截断):

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

      以上将产生这些结果:

      --------
      1793.51
      11806.21
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-09-29
        • 1970-01-01
        • 1970-01-01
        • 2014-05-03
        • 1970-01-01
        • 1970-01-01
        • 2016-08-16
        相关资源
        最近更新 更多