我只是想在德国获得正确的数字格式,所以我需要将逗号显示为小数分隔符而不是点。但这...
DECLARE @euros money
SET @euros = 1025040.2365
SELECT CONVERT(varchar(30), @euros, 1)
显示 1,025,040.24
而不是 1.025.040,24
(或 1025040,24
)。在 C# 中,提供适当的 CultureInfo
很简单,但在 T-SQL 中如何做到这一点?
我真的需要使用REPLACE
吗?但即使如此,如何正确替换1,025,040.24
?
最佳答案
为了提供适当的区域性信息,SQL 2012 中提供了 FORMAT()
函数。这是一个例子:
declare @f float = 123456.789;
select
[raw] = str(@f,20,3)
,[standard] = cast(format(@f, 'N', 'en-US') as varchar(20))
,[German] = cast(format(@f, 'N', 'de-DE') as varchar(20))
返回
raw |standard |German |
---------------------|-----------|-----------|
123456.789 |123,456.79 |123.456,79 |
您还可以在第二个参数中指定自定义格式字符串,其规则与 .NET 相同。
关于sql-server - 显示逗号而不是点作为小数分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31611221/