我一直在使用 SQL Server 2005,我需要将一些列以Money
格式存储在数据库中。
但是 SQL Server 像这样存储它们 --> 0000.0000
,但我只想要小数点后 2 位数字 ---> 0000.00
我必须在程序中控制它还是有办法在 SQL Server 2005 中更改这种格式?
提前致谢
我一直在使用 SQL Server 2005,我需要将一些列以Money
格式存储在数据库中。
但是 SQL Server 像这样存储它们 --> 0000.0000
,但我只想要小数点后 2 位数字 ---> 0000.00
我必须在程序中控制它还是有办法在 SQL Server 2005 中更改这种格式?
提前致谢
我通常会在前端做这些格式化的东西。但是,如果您仍然必须在 DB 层本身内执行此操作,请使用 ROUND 函数。
SELECT CAST(ROUND(1234.1234, 2) AS MONEY)
还建议您查看Aaron Bertrand 撰写的Money & Decimal 帖子之间的性能存储比较: https ://sqlblog.org/2008/04/27/performance-storage-comparisons-money-vs-decimal
Money Vs Decimal Vs Float 决策流程图(摘自 SQLCAT.com):
试试这个它适用于 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)
希望这有帮助!