如何将数字格式化为字符串
我的表达式:
a1.RKMX_RowID+CONVERT(varchar(100), a2.RK_RQ, 112)a1.RKMX_RowID=1
a2.RK_RQ=2009-4-5想要的结果: 120090405但我的表达式结果为:20090406

解决方案 »

  1.   

    convert(varchar(1),a1.RKMX_RowID)  +  CONVERT(varchar(100), a2.RK_RQ, 112) a1.RKMX_RowID=1 
    a2.RK_RQ=2009-4-5 
      

  2.   

    ltrim(a1.RKMX_RowID)+CONVERT(varchar(100), a2.RK_RQ, 112) 
      

  3.   

    你的a1.RKMX_RowID估計是数字类型吧?
    数字类型+字符型,sql会先尝试将字符型转成数字型,再相加,当字符型不能转成数字型时,就报错
    要呈现120090406,是字符串合并
    所以要将a1.RKMX_RowID也转成字符型
    套上 rtrim(a1.RKMX_RowID) 或 ltrim(a1.RKMX_RowID) 或 convert(varchar,a1.RKMX_RowID)
      

  4.   

    dateadd(day,1,CONVERT(varchar(100), '2009-4-5 ', 112) )//a1.RKMX_RowID要转化成数字类型的
      

  5.   

    declare @i int
    set @i=1
    select cast(@i as varchar)+convert(varchar(10),getdate(),112)
      

  6.   

    declare @RKMX_RowID varchar(20),@RK_RQ varchar(20)
    select @RKMX_RowID='1',@RK_RQ='2009-4-5'select @RKMX_RowID+convert(char(8),cast(@RK_RQ as datetime),112)
    /*
                                 
    ---------------------------- 
    120090405(所影响的行数为 1 行)
    */