各位高手,我写了一个代码,老是出问题,请帮我看看是什么地方出问题了
declare @sql nvarchar(1000),@str nvarchar(1000) 
set @sql=N'select a.jh as skjbh,a.flow_no as sklsh,replace(replace(replace(CONVERT(varchar, a.oper_date, 120 ),'-',''),'',''),':','') as sksj,sum(a.sale_price) as hjje into ##z from  dbo.pos_t_saleflow a
group by a.flow_no,a.jh,a.oper_date' 
execute sp_executesql @sql 
就是加了日期转换就出问题了
应该怎么改?

解决方案 »

  1.   

    declare @sql nvarchar(1000),@str nvarchar(1000)  
    set @sql=N'select a.jh as skjbh,a.flow_no as sklsh,replace(replace(replace(CONVERT(varchar, a.oper_date, 120 ),''-'',''''),'''',''''),'':'','''') as sksj,sum(a.sale_price) as hjje 
    into ##z from dbo.pos_t_saleflow a
    group by a.flow_no,a.jh,a.oper_date'  
    execute sp_executesql @sql  
      

  2.   

    replace(replace(replace(CONVERT(varchar, a.oper_date, 120 ),''-'',''''),'''',''''),'':'','''')
    单引号中的的单引号
      

  3.   

    select replace(replace(replace(replace(CONVERT(varchar, a.oper_date, 120 ),'-',''),'',''),':',''),' ','')
      

  4.   

    如果你是动态SQL,则需要改为如下:
    set @sql=N'select a.jh as skjbh,a.flow_no as sklsh,replace(replace(replace(replace(CONVERT(varchar, a.oper_date, 120 ),''-'',''''),'''',''''),'':'',''''),'' '','''') as sksj,sum(a.sale_price) as hjje into ##z from dbo.pos_t_saleflow a
    group by a.flow_no,a.jh,a.oper_date'  
      

  5.   

    declare @sql nvarchar(1000),@str nvarchar(1000)  
    set @sql=N'select replace(replace(replace(CONVERT(varchar(20), getdate(), 120 ),''-'',''''),'''',''''),'':'','''')  
    '  
    execute sp_executesql @sql  
    ----------------------
    20100519 125722(1 行受影响)
      

  6.   


    declare @sql nvarchar(1000),@str nvarchar(1000) 
    set @sql=N'select a.jh as skjbh,a.flow_no as sklsh,replace(replace(replace('+CONVERT(varchar, a.oper_date, 120+' ),''-'',''''),'''',''''),'':'','''') as sksj,sum(a.sale_price) as hjje into ##z from dbo.pos_t_saleflow a
    group by a.flow_no,a.jh,a.oper_date' 
    execute sp_executesql @sql