我一直想写一个case语句如下SQL Server - 为什么calc给0?
case when datediff(week,cast(cast(tourney_date as char(8)) as date, current_timestamp) >104 then 0
when datediff(week,cast(cast(tourney_date as char(8)) as date, current_timestamp) <=13 then 1
when datediff(week,cast(cast(tourney_date as char(8)) as date, current_timestamp) between 14 and 104
then cast(((datediff(week,cast(cast(tourney_date as char(8)) as date, current_timestamp)-13)/91) as numeric(6,5) end as multiplier
但是这不会返回非0.0000值时,DATEDIFF返回14和104之间的值来测试这一点,我试图让一个真正的基本测试上班
declare @test as numeric(6,5)
set @test=72/91
print @test
我还是得到0.00000?我正在犯什么小错误?
在此先感谢。
尝试这个代替 声明@test为数字(6 ,5) set @ test = 72.0/91.0 – Harry
谢谢解释测试,但任何想法为什么案件不起作用? – thequadge