存储过程---从字符串向datetime转换时失败 20qiaoyongjun888]

发布时间:2014-1-1 0:09:47编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"存储过程---从字符串向datetime转换时失败 20qiaoyongjun888]",主要涉及到存储过程---从字符串向datetime转换时失败 20qiaoyongjun888]方面的内容,对于存储过程---从字符串向datetime转换时失败 20qiaoyongjun888]感兴趣的同学可以参考一下。

--------------------------------------------------------------------存储过程 ALTER proc [dbo].[proc_OA_FileSearch] @filename varchar(100), @accessoryname varchar(100), @username varchar(100), @pageindex int, @pagesize int, @begintime datetime, @endtime datetime as declare @sqlstr varchar(500) set @sqlstr='with newtable as (select * , ROW_NUMBER() OVER(order by fileid) as RowNumber from FileInfo where IfDelete=0' if(@filename<>'') begin set @sqlstr=@sqlstr+' and FileName like '''+@filename +'%'+''' ' end  if(@accessoryname<>'') begin set @sqlstr=@sqlstr+' and FileId in (select FileId from AccessoryFile where AccessoryName like '''+@accessoryname+'%'+''''+')' end if(@username<>'') begin set @sqlstr=@sqlstr+' and FileOwner in (select UserId from UserInfo where UserName like '''+@username+'%'+ ''''+ ')' end  if(@begintime<>'' and @endtime<>'') begin set @sqlstr=@sqlstr+'and CreateDate between '''+@begintime +''''+ ' and '''+ @endtime +'''' end set @sqlstr=@sqlstr+' )select * from newtable where RowNumber between '+ CAST((@pageindex-1)*@pagesize+1 as varchar(100))+' and '+ CAST(@pagesize*@pageindex as varchar(100)) exec(@sqlstr) -------------------------------------------------------------------------------------------------------- 1在数据库中测试 exec proc_OA_FileSearch '','','',1,10,'1900-1-1','2010-1-1' 没什么问题 2拿到界面测试的时候 填上日期的时候 总提示:从字符串向datetime转换时失败,查不出结果  3界面的日期格式没问题 请高手解决一下 谢谢谢谢 

if(@begintime<>'' and @endtime<>'') begin set @sqlstr=@sqlstr+'and CreateDate between '''+@begintime +''''+ ' and '''+ @endtime +'''' end 你这样写的话,最好把参数那里,日期的类型也改成varchar

在应用程序(界面上)中断点看看传入的参数@begintime datetime, @endtime datetime的值的格式是怎样的,是不是无法转换。 还有就是试试 set @sqlstr=@sqlstr+'and CreateDate between '''+cast(@begintime as varchar(20))+''''+ ' and '''+cast( @endtime as varchar(20))+''''

一般我是把数据库的日期转换成nvarchar进行判断,不然容易出现日期字段包含时间信息造成判断的时候少了一个小时的问题。

引用楼主 qiaoyongjun888 的回复:--------------------------------------------------------------------存储过程 ALTER proc [dbo].[proc_OA_FileSearch] @filename varchar(100), @accessoryname varchar(100), @username varchar(100), @pagein…… between...and...之间可以是字符串类型的吗

引用 1 楼 js_szy 的回复:if(@begintime<>'' and @endtime<>'') begin set @sqlstr=@sqlstr+'and CreateDate between '''+@begintime +''''+ ' and '''+ @endtime +'''' end 你这样写的话,最好把参数那里,日期的类型也改成varchar between...and...之间可以是字符串类型的吗


上一篇:SQL-DMO的主要用途及特色是? 40分,无满意结帖,结帖人meishow88]
下一篇:[推荐] SQL Server IO 子系统浅究 II 100obuntu]

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款