以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- SQL变量 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=128111) |
||||
-- 作者:lshshlxsh -- 发布时间:2018/11/29 8:40:00 -- SQL变量
请问老师这段代码错在那里? 只输出@SQL跟注释(红色背景的)的都一样 执行exec (@sql) 就报错了 执行红色注释的代码是能查出来的
[此贴子已经被作者于2018/11/29 8:42:56编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/11/29 8:57:00 -- select MIN(时间) from K2017 where CONVERT(varchar(10),时间,120)=\'\'+@rq+\'\'
改成
select MIN(时间) from K2017 where CONVERT(varchar(10),时间,120)=@rq
如果是复杂的sql语句,就必须用 exec(sql语句) 处理 |
||||
-- 作者:lshshlxsh -- 发布时间:2018/11/29 9:23:00 -- 谢谢老师 这个是可以执行的 但是 我还有其他的语句 我要怎样把 这句作为一个 @sql的变量 直接执行 exec (@sql) ?
我要怎么将2017-01-05 改成变量 @rq d eclare @rq datetime,@currnf varchar(4),@temp int,@stime datetime,@etime datetime
[此贴子已经被作者于2018/11/29 9:49:23编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/11/29 9:52:00 -- 合成字符串,比如
set @sql = \'select MIN(时间) from K2017 where CONVERT(varchar(10),时间,120)=\'\'\' + @rq + \'\'\'\' |
||||
-- 作者:lshshlxsh -- 发布时间:2018/11/29 10:26:00 -- 谢谢老师 两边日期格式都设置一样的就可以了 set @sql = \'s elect MIN(时间) from K2017 where CONVERT(varchar(10),时间,120)=\'\'\' + CONVERT(varchar(10),@rq,120) + \'\'\'\'
|