--楼主也太粗心大意了吧
declare @cdate smalldatetime,@year varchar(10),@month varchar(10),@day varchar(10) ,@hour varchar(10)
set @year ='2004'
set @month='4'
set @day='5'
set @hour='10'
select @year + '-' + @month + '-' + @day + '-' + ' ' + @hour + ':' +'00' + ':' + '00'
select @cdate=convert(datetime,@year + '-' + @month + '-' + @day + ' ' + @hour + ':' +'00' + ':' + '00')
select @cdate

解决方案 »

  1.   

    在帮忙看以下这个提好吗 ?
    ALTER    proc  CW_时收银汇总
    ( @Hour varchar(5)=null
    )
    as 
    set nocount on 
    declare @interror int,
    @Cdate datetime,
    @day varchar(10),
    @Year varchar(10),
    @Month varchar(10)
    declare @table table (ID int identity,
                          单价 numeric(8,2),
                          折扣 numeric(8,2),
                          数量 int ,
                          总价 numeric(8,2),
                          发生时间 smalldatetime)
    select @Year=datepart(year,convert(datetime,convert(varchar,getdate(),1),1)), --本年
    @Month =datepart(month,getdate()), --本月
    @day=datepart(day,dateadd(day,-1,getdate())) --本日
    begin 
    select @cdate=convert(datetime,@year + '-' + @month + '-' + @day + ' ' + @hour + ':' +'00' + ':' + '00')
    select @cdate 
    end