我一直在使用SQL Server 2005,我需要以Money
格式在数据库中存储一些列。
但SQL Server会像这样存储它们 - > 0000.0000
,但我只想要小数点后的2位数字---> 0000.00
我是否必须在程序中控制它,或者有一种方法可以在SQL Server 2005中更改此格式?
提前致谢
答案 0 :(得分:4)
我通常会在前端做这些格式化的东西。但是如果你仍然需要在DB层本身内进行,那么可以使用ROUND函数。
SELECT CAST(ROUND(1234.1234, 2) AS MONEY)
还建议您查看 Money& amp;之间的性能存储比较由Aaron Bertrand撰写的小数帖子:https://sqlblog.org/2008/04/27/performance-storage-comparisons-money-vs-decimal
Money Vs Decimal Vs Float决策流程图(摘自SQLCAT.com):
答案 1 :(得分:2)
答案 2 :(得分:1)
尝试这适用于SQL Server 2008及更低版本(2012年已经有一个可以使用的FORMAT()函数)
这仅适用于Money和SmallMoney数据类型
declare @v money -- or smallmoney
set @v = 1000.0123
select convert(varchar(25), @v, 0)
select convert(varchar(25), @v, 1)
select convert(varchar(25), @v, 2)
select convert(varchar(25), @v, 126)
select '$' + convert(varchar(25), @v, 0)
select '$' + convert(varchar(25), @v, 1)
select '$' + convert(varchar(25), @v, 2)
select '$' + convert(varchar(25), @v, 126)
希望这有帮助!