在 FORMAT 调用中指定货币的小数位
Specify decimal places for currency in FORMAT call
我的数据库包含通常以分数值结尾的燃料单价,例如每加仑 2.099 美元。我使用内置的 FORMAT
调用来指定语言环境。这不允许我使用超过 2 位小数的货币格式。有没有办法覆盖这个?或者我是否坚持根据许多可能的语言环境进行一些自定义格式设置?
考虑这个例子:
DECLARE @fuelPrice FLOAT = 2.099
SELECT FORMAT(@fuelPrice, 'G', 'en-US') AS 'NoDollarSign'
,FORMAT(@fuelPrice, 'C', 'en-US') AS 'WrongDecimalPlaces'
,'.099' as 'WhatIWant'
输出:
NoDollarSign WrongDecimalPlaces WhatIWant
2.099 .10 .099
如果您这样做的唯一原因是为了展示目的,您是否可以这样做?
DECLARE @fuelPrice FLOAT = 2.099
SELECT '$' + cast(@fuelprice as varchar(10))
Standard Numeric Format Strings 允许您指定精度。使用 C3
作为格式:
DECLARE @fuelPrice FLOAT = 2.099
SELECT FORMAT(@fuelPrice, 'C3', 'en-US')
我的数据库包含通常以分数值结尾的燃料单价,例如每加仑 2.099 美元。我使用内置的 FORMAT
调用来指定语言环境。这不允许我使用超过 2 位小数的货币格式。有没有办法覆盖这个?或者我是否坚持根据许多可能的语言环境进行一些自定义格式设置?
考虑这个例子:
DECLARE @fuelPrice FLOAT = 2.099
SELECT FORMAT(@fuelPrice, 'G', 'en-US') AS 'NoDollarSign'
,FORMAT(@fuelPrice, 'C', 'en-US') AS 'WrongDecimalPlaces'
,'.099' as 'WhatIWant'
输出:
NoDollarSign WrongDecimalPlaces WhatIWant
2.099 .10 .099
如果您这样做的唯一原因是为了展示目的,您是否可以这样做?
DECLARE @fuelPrice FLOAT = 2.099
SELECT '$' + cast(@fuelprice as varchar(10))
Standard Numeric Format Strings 允许您指定精度。使用 C3
作为格式:
DECLARE @fuelPrice FLOAT = 2.099
SELECT FORMAT(@fuelPrice, 'C3', 'en-US')