如何在SQL Server中将15000000.00转换为15,000,000?

4

在SQL Server中,有一个数值数据类型的值为15000000.00。

如何将该值转换为15,000,000?


1
你的意思是想要显示15,000,000还是将其转换为带逗号的字符串?我猜你只是想以这种方式显示它...如果是这样,那你要在哪里显示它呢? - Nick Craver
这里的讨论可能会给你答案。链接 - Jay Zhu
是的,我只想将数字15000000.00显示为$15,000,000。 - Paresh
那么这怎么成为一个SQL Server问题了呢?演示是在客户端完成的。 - TomTom
5个回答

6

在这里处理本地化是错误的,应该在表示层处理,而不是数据存储。


2

如果您正在使用money类型,或者希望结果为money类型,那么可以非常简单地实现:

SELECT CONVERT(VARCHAR, @money_val, 1) -- you may have to cast to money from int first

点击此链接查看更深入的讨论:

以下是节选:

逗号格式仅适用于MONEY数据类型。如果您想要为INT、DECIMAL等格式化逗号,则应将其转换为MONEY并使用样式标志1进行转换。

DECLARE @m DECIMAL(10,2) SELECT @m = '23456789.25'

SELECT CONVERT(VARCHAR, @m, 1) AS DecimalValue, CONVERT(VARCHAR, CAST(@m AS MONEY), 1) AS MoneyValue /* DecimalValue
MoneyValue


23456789.25 23,456,789.25 */


1

我一直以来都成功地使用了以下代码

SELECT
  Convert(VARCHAR, Cast(100000.01 AS MONEY), 1) Amount

Results:
Amount
-----------------------------
100,000.01


1

这不是转换。15.000.000,00(德语写法)是表示1500万的字符串表示形式。十进制数据类型不存储字符串,而是存储值。

您看到的所有字符串表示形式基本上都是可视化的 - 在企业管理器或软件中根据设置(区域设置)生成字符串。


1

您不想以格式保存数字数据。在选择时,可以执行以下操作:

SELECT CONVERT(varchar(12), value, 1) AS formattedvalue FROM table

最后的1是一种转换样式,它会根据您的本地设置和数字类型放置 . 和 , 符号。

如果问我,我甚至不会让SQL数据库服务器担心这个问题,而是在代码中自己格式化数字。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接