日期:2014-05-16  浏览次数:20827 次

sqlserver存储过程字符串转换datetime疑惑?
写了个存储过程:
省略。。
@selectedDate datetime=null;
as
declare @SqlWhr varchar(max)=null;
省略。。
set  @SqlWhr= @SqlWhr + ' and CreateDate<=Convert(datetime,'+@selectedDate+',120)';  

CreateDate是表中的一个字段datetime型,
DECLARE @return_value int,
                     @completed int
SELECT @completed = 0
EXEC @return_value = [dbo].[usp_InventoryAnalysis]
@selectedDate ='2014-03-13',
报错:从字符串转换日期和/或时间时,转换失败。
------解决方案--------------------
set SqlWhr= @SqlWhr + ' and CreateDate<=Convert(datetime,'''+@selectedDate+''',120)';  
------解决方案--------------------
把语句print出来把,或者用sql profiler 来跟踪一下