我一直在使用SQL Server 2005,我需要在Money
格式的數據庫中存儲一些列。SQL Server 2005貨幣格式
但SQL Server存儲他們這樣的 - >0000.0000
,但我只想在小數點--->0000.00
我必須在程序來控制這個還是有辦法後2個位數在SQL Server 2005中更改此格式?
在此先感謝
我一直在使用SQL Server 2005,我需要在Money
格式的數據庫中存儲一些列。SQL Server 2005貨幣格式
但SQL Server存儲他們這樣的 - >0000.0000
,但我只想在小數點--->0000.00
我必須在程序來控制這個還是有辦法後2個位數在SQL Server 2005中更改此格式?
在此先感謝
我通常會在前端做這些格式化的東西。但是,如果你仍然需要在數據庫層中完成它,那麼就使用ROUND函數。
SELECT CAST(ROUND(1234.1234, 2) AS MONEY)
也建議你檢查出的錢&十進制亞倫貝特朗寫後的高性能存儲比較:http://sqlblog.com/blogs/aaron_bertrand/archive/2008/04/27/performance-storage-comparisons-money-vs-decimal.aspx
錢Vs的十進制浮點Vs的決策流程圖(摘自SQLCAT.com) :
試試這個它適用於SQL Server 2008和以下(2012年本來就有,你可以使用格式()函數)
這將僅適用於數據類型money和smallmoney
declare @v money -- or smallmoney
set @v = 1000.
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)
希望得到這個幫助!
讓我糾正自己FORMAT()函數僅在SQL Server 2012中可用 – Jade
你可以發佈該列的數據類型嗎? –
停止使用MONEY,使用DECIMAL。在計算中使用時,可以更好地控制精度/縮放比例,提高精度。 –
如果您必須使用MONEY,您可以將其轉換爲十進制'cast(0.12345,作爲十進制(5,2))',產生0.12 – RLS