参数 传入SqlParameter paraphotoDate=new SqlParameter("PhotoDate",SqlDbType.datetime,8);存储过程中拼接sql语句:
Declare @sqltext As varchar(1000)
Declare @sqlstr As varchar(1000)@sqlstr='Datediff(day,uptime,'+@PhotoDate+')'@sqltext='select * from table where'+@sqlstr+' order by id desc'exec(@sqltext)
Go
问题出在:'Datediff(day,uptime,'+@PhotoDate+')'这里改如何写呢?因为@PhotoDate是时间类型才能在 DateDiff函数中使用
,但提示:
从字符串转换为 datetime 时发生语法错误。
也许在传送时都是以 字符串 形式传输的。
Declare @sqltext As varchar(1000)
Declare @sqlstr As varchar(1000)@sqlstr='Datediff(day,uptime,'+@PhotoDate+')'@sqltext='select * from table where'+@sqlstr+' order by id desc'exec(@sqltext)
Go
问题出在:'Datediff(day,uptime,'+@PhotoDate+')'这里改如何写呢?因为@PhotoDate是时间类型才能在 DateDiff函数中使用
,但提示:
从字符串转换为 datetime 时发生语法错误。
也许在传送时都是以 字符串 形式传输的。
Declare @sqlstr As varchar(1000)@sqlstr='Datediff(day,uptime,'''+@PhotoDate+''')'@sqltext='select * from table where'+@sqlstr+' order by id desc'exec(@sqltext)
Go
Declare @sqlstr As varchar(1000)set @sqlstr='Datediff(day,uptime,'''+convert(varchar(varchar(10),@PhotoDate,120)+''')'set @sqltext='select * from table where'+@sqlstr+' order by id desc'exec(@sqltext)
Go
Declare @sqlstr As varchar(1000)@sqlstr='Datediff(day,uptime,@PhotoDate)'@sqltext='select * from table where'+@sqlstr+' order by id desc'exec sp_executesql @sqltext, N'@PhotoDate datetime', @PhotoDate
Go
就是判断时间差为零的。
——————————————————————
请问Haiwer(海阔天空) :
是
'Datediff(day,uptime,"'+@PhotoDate+'")=0'
吗?
好像也不行
是'Datediff(day,uptime,'+@PhotoDate+')=0'
就是判断时间差为零的。
——————————————————————
请问Haiwer(海阔天空) :
是
'Datediff(day,uptime,"'+@PhotoDate+'")=0'
吗?
好像也不行
----------------要做類型轉換的。
Declare @sqlstr As varchar(1000)@sqlstr=' Datediff(day,uptime,'''+Convert(Varchar(10), @PhotoDate, 120)+''') = 0'@sqltext='select * from [table] where'+@sqlstr+' order by id desc'exec(@sqltext)
Go
Declare @sqlstr As varchar(1000)@sqlstr='Datediff(day,uptime,@PhotoDate) = 0' -- 楼主原来的语句少个判断值@sqltext='select * from table where'+@sqlstr+' order by id desc'exec sp_executesql @sqltext, N'@PhotoDate datetime', @PhotoDate
用了
zjcxc(邹建)
的方法
才知道 有这样在 存储过程中参数在传递的
谢谢