CREATE proc dbo.tb_test2
@dt_begindateStart   datetime,       
@dt_begindateEnd     datetime,       
@TimeStart     datetime='0:00:00',
@TimeEnd        datetime='23:59:59',
@city  char(10)
asselect * from tb_test
where city like @city+'%'
and CONVERT(DATETIME,CONVERT(CHAR(10),ddate,120),120) between CONVERT(DATETIME,CONVERT(CHAR(10),@dt_begindateStart,120),120)and CONVERT(DATETIME,CONVERT(CHAR(10),@dt_begindateEnd,120),120)
and CONVERT(DATETIME,CONVERT(CHAR(10),ddate,108),108) between CONVERT(DATETIME,CONVERT(CHAR(10),@TimeStart,108),108) and CONVERT(DATETIME,CONVERT(CHAR(10),@TimeEnd,108),108)

解决方案 »

  1.   

    CREATE proc dbo.tb_test2
    @dt_begindateStart   datetime,       
    @dt_begindateEnd     datetime,       
    @TimeStart     datetime='0:00:00',
    @TimeEnd        datetime='23:59:59',
    @city  char(10)
    as
      

  2.   

    为什么"在程序中调用此存储过程时不传时间参数"呢
    你传的时候,这样子不就行了吗?
    @dt_begindateStart  datetime, --'2006-01-17 00:00:00'
    @dt_begindateEnd   datetime -- '2006-01-17 23:59:59    
    你在存储过程里covert来covert去,如果ddate字段建有索引的话,还能用到吗?
      

  3.   

    搞这么复杂干什么?CREATE proc dbo.tb_test2
    @dt_begindateStart   char(10),       
    @dt_begindateEnd     char(10),        @city  char(10)
    asselect * from tb_test
    where city like @city+'%'
    and convert(char,ddate,102) between @dt_begindateStart and @dt_begindateEnd
    @dt_begindateStart,@dt_begindateEnd格式为yyyy.mm.dd
      

  4.   

    建立存储过程
    CREATE proc dbo.tb_test2
    @dt_begindateStart   datetime,       
    @dt_begindateEnd     datetime,       
    @TimeStart     datetime,
    @TimeEnd        datetime,
    改成
    CREATE proc dbo.tb_test2
    @dt_begindateStart   datetime,       
    @dt_begindateEnd     datetime,       
    @TimeStart     datetime='0:00:00',
    @TimeEnd        datetime='23:59:59',
      

  5.   

    因为我要求某一日期段的每天的时间段,例如 :2006-01-18 到 2006-10-18 这一日期段的'10:00:00'到'23:00:00'
    @TimeStart    datetime='0:00:00',
    @TimeEnd       datetime='23:59:59',
    上面的我也试过,但就是不能给变量赋值,是不是我不会调用存储过程?tb_test '2006-01-18 ','2006-10-18','','','%'
    tb_test '2006-01-18 ','2006-10-18','%','%','%'
    tb_test '2006-01-18 ','2006-10-18','%'我像上面如此调用,但都不能得出正确的结果。