变量外加单引号的问题,头大了!!!!!!!!!!!!!!!

aohan 2005-01-13 11:45:28
测试如下,发现@sql变量不是想像中的能正确执行
declare @startdate char(10)
declare @Enddate char(10)
declare @sql varchar(500)
set @startdate='2005-01-01'
set @enddate='2005-01-10'
set @sql ='select empid,kqdate,min(kqtime)as kqtime from att_kqdata where
kqdate between '+ @startdate +' and '+ @Enddate + ' group by empid,kqdate order by kqdate'
--print @sql
exec(@sql)


print 结果为:
select empid,kqdate,min(kqtime)as kqtime from att_kqdata where
kqdate between 2005-01-01 and 2005-01-10 group by empid,kqdate order by kqdate

而我想要的结果为

select empid,kqdate,min(kqtime)as kqtime from att_kqdata where
kqdate between '2005-01-01' and '2005-01-10' group by empid,kqdate order by kqdate

不知变量外要加''怎么处理了

单独执行:

select empid,kqdate,min(kqtime)as kqtime from att_kqdata where
kqdate between @startdate and @enddate group by empid,kqdate order by kqdate


是有返回结果的,如:

empid kqdate kqtime
----------- ------------------------------------------------------ -----------
10 2005-01-01 00:00:00.000 28495
11 2005-01-01 00:00:00.000 28110
12 2005-01-01 00:00:00.000 59480
14 2005-01-01 00:00:00.000 27769
16 2005-01-01 00:00:00.000 27771
20 2005-01-01 00:00:00.000 27789
24 2005-01-01 00:00:00.000 37496
27 2005-01-01 00:00:00.000 50614
28 2005-01-01 00:00:00.000 27782
29 2005-01-01 00:00:00.000 51883



头大了!!!!!!!!!!!!!!!!!
...全文
149 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhongxin799 2005-01-14
  • 打赏
  • 举报
回复
set @sql ='select empid,kqdate,min(kqtime)as kqtime from att_kqdata where
kqdate between '+ ''''+ @startdate +'''' +' and '+ ''''+ @Enddate +''''+ ' group by empid,kqdate order by kqdate'
aohan 2005-01-13
  • 打赏
  • 举报
回复
怎么发的问题在页面上看不到?

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧