群中一朋友问到
条件中where (h.period_id/100 = @period_id/100) 与 where (h.period_id = @period_id) 是否一样。自己还肯定是一样的。谁知道一测试:
declare @a int
set @a =2011111112
select @a/100.1
select @a/100
打印结果
20091020.099900
20111111
终于明白,原来Sql除法结果带不带小数,是由分子分母的类型说了算,如果分子分母全为不带小数的类型,结果就不带小数,其中任一一个是能带小数的类型,打印结果就带小数。
引申出来的作用:
我们在取"年月日"中的"年"时,就可以使用除法来取了。
比如:20121201(2012年12月1日)取年部分
select 20121201/10000
打印结果:2012-