我在sql中有以下语句
declare @date varchar(20)
declare @query NVARCHAR(MAX)
set @date= '2013-1-1'
set @query= 'print '+@date+''
execute (@query)
我得到的回答是2011年不是2013-1-1 .. 为什么会这样。该怎么做才能得到2013-1-1而不是2011年的答案 执行(@query)语句
答案 0 :(得分:3)
您的查询是有效的:
print 2013-1-1
引起:
'print '+@date+''
如果您将SQL重写为:
print @data
您将获得打印的价值:2013-1-1
如果您更新了原始查询:
declare @date varchar(20)
declare @query NVARCHAR(MAX)
set @date= '2013-1-1'
set @query= 'print '''+@date+''''
execute (@query)
这与写作相同:
print '2013-1-1'
答案 1 :(得分:0)
你也可以尝试这样....这也会给你答案
声明@date varchar(20) 声明@query NVARCHAR(MAX)
设置@ date ='2013-1-1' 设置@ query ='print'''+ @ date +'''' 执行(@query)