各位朋友:
小弟的表结构如下:
date time addmoney 
2006/09/14 12:13 10.00
2006/09/14 13:50 20.00
2006/09/14 13:51 10.00
2006/09/14 13:52 10.00存储过程如下:
create procedure FanTangChuenHuan
@begin_date datetime,
@end_date datetime
as
select isnull(sum(addmoney),0) addmoney, [date] from t_add where replace((date+' '+time),'/','-')>=convert(datetime,@begin_date) and replace((date+' '+time),'/','-')<=convert(datetime,@end_date) group by [date] order by [date]调用如下:
exec FanTangChuenHuan @begin_date='2007-10-1 0:0:01',@end_date='207-10-31 23:59:59'然后系统就老是提示:将数据类型 varchar 转换为 datetime 时出错请问到底错在哪里了?请各位朋友赐教,谢谢!!!

解决方案 »

  1.   

    date+ '   '+time 中的date 和 time 如果是datetime类型的话,相加会报错的
      

  2.   

    @end_date= '207-10-31   23:59:59 ' 
    207年----?
      

  3.   

    use test
    小弟的表结构如下:
    create table  T([date] varchar(10), [time] varchar(5),   addmoney numeric(18,2))
    insert T select '2006/09/14',   '12:13',   10.00 
    insert T select '2006/09/14',   '13:50',   20.00 
    insert T select '2006/09/14',   '13:51',   10.00 
    insert T select '2006/09/14',   '13:52',   10.00 go
    create   procedure   FanTangChuenHuan 
    @begin_date   datetime, 
    @end_date   datetime 
    as 
    select   isnull(sum(addmoney),0)   addmoney,   [date]   
    from   T  
    where   cast([date] as datetime)+[time] between @begin_date and @end_date
    group   by   [date]   order   by   [date] go
    exec  FanTangChuenHuan @begin_date='2006-09-01 13:27:31',@end_date= '2006-09-30 13:27:31'
    addmoney                                 date       
    ---------------------------------------- ---------- 
    50.00                                    2006/09/14(所影响的行数为 1 行)