写一个函数参数是DateTime,调用用字符串传不行,写成字符串可以可以,是怎么回事?……
--参数
@StartTime DateTime,--开始时间参数
@EndTime DateTime,--结束时间参数
……
--条件
WHERE StartTime>=@StartTime AND EndTime<=@EndTime --这样写执行不了WHERE StartTime>='2009-1-1' AND EndTime<='2009-3-13' --这样写可以执行

解决方案 »

  1.   

    WHERE StartTime>=convert(varchar(10),@StartTime,120) AND EndTime<=convert(varchar(10),@EndTime,120) 
      

  2.   

    LZ,可以将时间定义为CHAR(30)然后传进去就可以了。我以前是这样解决的。后来是convert(varchar(10),@StartTime,120)转换时间为字符类型。--参数
    @StartTime char(30),--开始时间参数
    @EndTime char(30),--结束时间参数
    ……
    --条件
    WHERE StartTime>=@StartTime AND EndTime<=@EndTime --这样写执行不了
      

  3.   

    我吧参数类型改成vachar(10)就可以了,晕倒
      

  4.   

    declare
    @StartTime DateTime,--开始时间参数
    @EndTime DateTime--结束时间参数
    select @StartTime='2009-01-11',@EndTime='2009-05-01'if @StartTime>@EndTime
     print @StartTime
    else if @StartTime<@EndTime
     print @EndTime
    else 
     print null--05  1 2009 12:00AM如果表的字段类型也是datetime,应该可以比的才对啊.
      

  5.   

    其实存贮过程的参数设成字符型比较好。
    因为如果是时间型,则参数传入时必须保证是datetime型呀。