@MAX_TJZD是float的, 能和字符串连接?

解决方案 »

  1.   

    --try
    DECLARE @TJZD varchar(10),
            @sql NVARCHAR(400),
            @MAX_TJZD float,
            @Temp_ReceiveTime datetime,
            @MAX_ReceiveTime datetimeSET @sql = N'SELECT @Temp_ReceiveTime = ReceiveTime FROM LSB WHERE '+@TJZD+' = '+@MAX_TJZD+''
    EXEC sp_executesql @sql,N'@Temp_ReceiveTime DATETIME output',@MAX_ReceiveTime output
      

  2.   

    !发现问题所在!多谢楼上
    不过我这句子里是要判断@TJZD和@MAX_TJZD相等做为查询条件的,应该怎么写呢?
      

  3.   

    开始的@TJZD定义写错了,我本来定义的就是NVARCHAR(30)
      

  4.   

    得看你运行后 @TJZD的值所代表的字段的数据类型。
    如果该字段是float 类型,就不会出错
    如果是nvarchar()类型,就出错了。就要显示转换为nvarchar()类型try:
    SET @sql = N'SELECT'+ @Temp_ReceiveTime+' = ReceiveTime FROM LSB WHERE '+@TJZD+' = '+cast(@MAX_TJZD as nvarchar(50))+''
      

  5.   

    我的@TJZD所代表的字段是FLOAT类型,@MAX_TJZD的值也是FLOAT类型