写一个函数参数是DateTime,调用用字符串传不行,写死可以,是怎么回事?
写一个函数参数是DateTime,调用用字符串传不行,写成字符串可以可以,是怎么回事?
- SQL code
……--参数@StartTime DateTime,--开始时间参数@EndTime DateTime,--结束时间参数……--条件WHERE StartTime>=@StartTime AND EndTime<=@EndTime --这样写执行不了WHERE StartTime>='2009-1-1' AND EndTime<='2009-3-13' --这样写可以执行
[解决办法]
- SQL code
WHERE StartTime>=convert(varchar(10),@StartTime,120) AND EndTime<=convert(varchar(10),@EndTime,120)
[解决办法]
LZ,可以将时间定义为CHAR(30)然后传进去就可以了。我以前是这样解决的。后来是convert(varchar(10),@StartTime,120)转换时间为字符类型。
--参数
@StartTime char(30),--开始时间参数
@EndTime char(30),--结束时间参数
……
--条件
WHERE StartTime>=@StartTime AND EndTime<=@EndTime --这样写执行不了
[解决办法]
- SQL code
declare@StartTime DateTime,--开始时间参数@EndTime DateTime--结束时间参数select @StartTime='2009-01-11',@EndTime='2009-05-01'if @StartTime>@EndTime print @StartTimeelse if @StartTime<@EndTime print @EndTimeelse print null--05 1 2009 12:00AM
[解决办法]
其实存贮过程的参数设成字符型比较好。
因为如果是时间型,则参数传入时必须保证是datetime型呀。