转换为货币格式
问题描述:
我有以下查询试图应用货币格式。转换为货币格式
select case when c.num is null
then 0.00
else '$' + Convert(varchar,CONVERT(money(c.total+c.customerS),1),2)
end verified
from table_Sales c
where [email protected]
当我运行它时,它给出错误,它不能将varchar转换为数字。当我将 varchar更改为整数或数字时,它不会执行任何操作。
请让我知道如何解决它。
答
案例条款两种类型必须相同,所以0.00
必须'0.00'
查询:
select case when c.num is null
then '0.00'
else '$' + Convert(varchar,CONVERT(money(c.total+c.customerS),1),2)
end verified
from table_Sales c
where [email protected]
答
虽然我明白这不是一个直接的答案,我会强烈主张在格式化数字数据数据层中的字符串。
对我来说感觉更像是逻辑类型,它可能或可能是应用程序特定的。如果您想重复使用相同的查询来处理英镑或欧元,该怎么办?
此外,如果您的应用程序需要处理多种货币?
我会建议返回的数据,而不添加十进制形式的货币符号,并在应用程序或客户端应用格式,如果基于Web也许。
只是我2C(或2P)
另外,改变'..Convert(VARCHAR,..'喜欢的东西'..Convert(VARCHAR(100),...' –
什么是'ts.id '。在你的查询中没有'ts'表 –
为什么不把它存储在Decimal(10,2)数据类型中?是否有钱? –