select 'dblDepr'+convert(varchar(2),month(dateadd(mm,-1,getdate())))
得到:dblDepr2我想把它转化为float类型,执行时报错,具体语句如下,请问该如何做,谢谢!!!
select CONVERT(float, REPLACE('dblDepr'+convert(varchar(2),month(dateadd(mm,-1,getdate()))), '''', ''))
服务器: 消息 8114,级别 16,状态 5,行 1
将数据类型 varchar 转换为 float 时出错。

解决方案 »

  1.   

    dblDepr2是字符串 当然出错了
      

  2.   

    就是为了得到“dblDepr2” 这个字段,但这个字段的类型是float,由于“dblDepr2”中的“2”是变量是根据每个月而变化的,但是只能是下个月取本月的数据,我只能先把设置“dblDepr”为常量,然后再把convert(varchar(2),month(dateadd(mm,-1,getdate())))给拼接起来,在转化为float类型。请问如果要得到float类型,还需要做什么工作。非常感谢!!!
      

  3.   

    exec('select '+ REPLACE('dblDepr'+convert(varchar(2),month(dateadd(mm,-1,getdate()))), '''', ''))用exec动态执行
      

  4.   


    declare @sql as varchar(1000)
    select @sql = 'select convert(float,'+ REPLACE('dblDepr'+convert(varchar(2),month(dateadd(mm,-1,getdate()))), '''', '')+')'
    exec(@sql)