如何从SQL服务器中的money数据类型转换?

20 sql-server currency

我在SQL Server中有一个money数据类型.如何在查询中将0.00重新格式化为0?

Jon*_*han 30

正常的货币转换将保留个人便士:

SELECT convert(varchar(30), moneyfield, 1)
Run Code Online (Sandbox Code Playgroud)

最后一个参数决定输出格式的样子:

0(默认值)小数点左边每三位数字都没有逗号,小数点右边两位数字; 例如,4235.98.

小数点左边每三位数字1个逗号,小数点右边两位数字; 例如,3,510.92.

2小数点左边每三位数字都没有逗号,小数点右边四位数字; 例如,4235.9819.

如果你想截断便士,并计算磅数,你可以使用四舍五入到最接近的磅,地板到最低的整磅,或天花板来舍入磅:

SELECT convert(int, round(moneyfield, 0))
SELECT convert(int, floor(moneyfield))
SELECT convert(int, ceiling(moneyfield))
Run Code Online (Sandbox Code Playgroud)


Tin*_*oji 3

将其转换为 int 对你有帮助吗?钱本来就是有小数位的...

DECLARE @test AS money
SET @test = 3
SELECT CAST(@test AS int), @test
Run Code Online (Sandbox Code Playgroud)