好的我有一個數字是一個nvarchar並有2個小數位。如果我通過一個非常簡單的函數運行它,它會將所有小數位更改爲零,我不知道爲什麼或如何停止它。爲什麼SQL函數將小數位更改爲全零?
這裏是基本功能(實際上是較大功能的一部分,但這是導致我的問題的原因)。
create FUNCTION [dbo].[z_test](@amt as nvarchar)
RETURNS decimal(18,4)
BEGIN
declare @amt1 as decimal(18,4)
set @amt1=cast(@amt as decimal(18,4))
return @amt1
END
所以,如果我跑這條SQL語句
select cast('3.48' as decimal(18,4)), dbo.z_test('3.48')
我希望返回的列是相同的。然而,我得到的是 3.4800 3.0000
任何想法爲什麼發生這種情況或我可以如何改變它?這是在SQL Server 2005. 在此先感謝。
是否有可能發佈全功能?我無法看到你提供的代碼片段的問題 – Curt 2012-04-19 14:13:13