【问题标题】:How to format money value in SQL [closed]如何在 SQL 中格式化货币值 [关闭]
【发布时间】:2017-01-02 08:52:33
【问题描述】:

我的sql命令哪里出了问题?

select REPLACE(CONVERT(varchar, CAST(price AS money), 1),'.','.') as price

输出:

price
-----
145,000,00

我想要这样的输出

price
-----
145.000,00

【问题讨论】:

  • 一般情况下,您希望将数据检索为(十进制)数字,然后设置其显示格式。这些通常在应用程序的不同部分完成。例如,price 是一个字符串,您无法对其求和或计算多行的平均值。
  • @a_horse_with_no_name 我正在使用 sql server 2016 @Kobi 你能帮忙处理我的 sql 命令吗?
  • 这是一种奇怪的输出格式:请准确定义(以避免歧义)。
  • @Richard:这没什么奇怪的。某些国家/地区使用, 作为小数分隔符,使用. 作为分组字符。
  • format() 应该可以做到这一点:msdn.microsoft.com/en-us/library/hh213505.aspx

标签: sql sql-server sql-server-2016


【解决方案1】:

格式化结果通常最好留给前端。

话虽如此,对于 SQL Server 2016,请使用具有适当语言环境的 format 函数:

declare @m money = 145000
select format (@m, '#,###.00', 'DE-de')

【讨论】:

  • 这就是我在谈论它的作品......谢谢院长
  • 如果要将零格式化为0.00 而不是.00,请使用'#,##0.00'
猜你喜欢
  • 1970-01-01
  • 2015-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-27
  • 1970-01-01
  • 1970-01-01
  • 2021-12-06
相关资源
最近更新 更多