读书人

写一个函数参数是DateTime调用用字符

发布时间: 2012-09-28 00:03:35 作者: rapoo

写一个函数参数是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型呀。

读书人网 >SQL Server

热点推荐