【问题标题】:Get only two decimal points in money datatype in SQL Server在 SQL Server 中仅获取货币数据类型中的两个小数点
【发布时间】:2011-03-31 09:47:32
【问题描述】:
SELECT ROUND(123.4567, 2)` gives me `123.4600`

但我需要123.46

字段的数据类型是money。

解决方案:

<%# DataBinder.Eval(Container.DataItem, "FieldName","{0:0.00}") %>

【问题讨论】:

    标签: .net sql-server sql-server-2005 tsql rounding


    【解决方案1】:
    SELECT CAST(ROUND(123.4567, 2) AS MONEY)
    

    做你想做的事

    【讨论】:

    • 这行得通,但是当我在我的 .aspx 页面上将值分配给中继器中的一个字段时,它再次显示两个尾随零。我正在使用 Linq to sql。
    • 您可以在转发器中使用 ToString() 来指定您想要的格式。
    • +1 感谢您的回答。看我的问题,你的回答也是正确的。但是@abatishchev 试图解决更大的问题,而不仅仅是回答我的问题。所以,我接受了他的回答。
    【解决方案2】:

    如果适用,在视图层上格式化,而不是在数据层上,即读取所有数据并在以后截断它(例如在 C# 客户端中)

    【讨论】:

    【解决方案3】:

    【讨论】:

      【解决方案4】:
      SELECT FORMAT(123.4567,'N2')
      

      它会帮助你

      【讨论】:

        【解决方案5】:

        @IsmailS - 对我来说,更大的图景是让数据服务器尽可能地格式化,尤其是当它像内联转换一样简单时。它在您的其他代码中产生的混乱更少。例如,投射 Price,一个货币字段:

        select CAST(Price as numeric(17,2)) Price from PriceTable

        YMMV - 这是我的个人经历。

        【讨论】:

          猜你喜欢
          • 2016-05-22
          • 2010-10-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-06-03
          • 1970-01-01
          • 2015-11-21
          • 2016-04-21
          相关资源
          最近更新 更多