【问题标题】:Using currency $ format with sql server?在 sql server 中使用货币 $ 格式?
【发布时间】:2011-02-03 08:32:01
【问题描述】:

我的 sql 数据库中有 645.000 之类的数据,我需要对其进行格式化以包含货币符号,例如 $645.000

如何在 SQL 中实现这一点?

【问题讨论】:

  • 你能发布一些关于你的表结构的信息吗?
  • 你确定。我有一个产品表,其中有一个带有货币数据类型的“BCWS”列。在本专栏中,我有 456.000,331500000.0000,854.000 等数据。我希望使用 sql server 以 $ 格式显示这些数据。
  • chaudhary:拜托,不要在评论中添加这样的内容——这真的很难阅读。请改为通过编辑更新您的原始问题并提供附加信息 - 谢谢!

标签: sql sql-server formatting currency


【解决方案1】:

您不需要也不应该在 SQL Server 中对其进行格式化 - 而是您的应用程序需要为 UI 格式化它。

你没有说你的应用程序是用什么编码的,例如在 C# 中我们可以使用

Label1.Text = string.Format("Amount is {0:c}", amount);

那么您可以确定它不仅会使用正确的货币符号,还会使用正确的小数和千位分隔符。

【讨论】:

    【解决方案2】:

    SQL 服务器无法控制数字在您的客户端应用程序中的显示方式。修改应用程序设置、Windows 控制面板或您的程序代码以更改数字的显示方式。

    【讨论】:

      【解决方案3】:

      您的列的数据类型是什么?

      一般来说,货币前缀应该只添加在 UI(用户界面)中,而在数据库级别,您应该只使用数字。存储货币值的最佳数据类型是 MONEY。

      【讨论】:

      • 您确定 MONEY 是存储货币金额的“最佳”数据类型吗?为什么?我从来没有找到它的用途,并且在某些计算中,与 NUMERIC 相比,金钱产生的结果非常不准确。另一方面,与 NUMERIC 相比,MONEY 确实具有一些性能优势,并且可以节省少量存储空间。我只是不确定这是否值得说它是金钱价值的“最佳”类型。
      • sorry dportas 我的帖子可能有点太快了,钱有一些优势但我现在不能说,没有进一步阅读,如果钱绝对是所有情况下最好的,实际上有帖子在人们说不要使用它。
      【解决方案4】:

      如果您确实需要从数据库而不是 UI 执行此操作,请参考此内容。

      http://www.java2s.com/Code/SQLServer/Data-Type/Formatmoneycurrency.htm

      【讨论】:

      • 我收到此错误:“结果空间不足,无法将货币值转换为 varchar。”如果我的值是:22888360.0000
      • 问题在于您的 VARCHAR 大小。将其设为更大的值(VARCHAR(20) 或其他内容)并尝试。
      • 没错,但我想以这种方式格式化:228,883,60 美元。使用您的示例,我得到的数据如下:$22888360.00。
      • 我建议您不要将数字转换为字符串。将货币金额存储和处理为数值更有意义。
      • 同意 dportas。在数据库级别,您最好将数字保留为数字,而不是转换为字符串。您可以在 GUI 上轻松做到这一点。
      猜你喜欢
      • 1970-01-01
      • 2014-10-22
      • 2019-03-08
      • 2015-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多