我在 sql 中有以下语句
declare @date varchar(20)
declare @query NVARCHAR(MAX)
set @date= '2013-1-1'
set @query= 'print '+@date+''
execute (@query)
我得到的答案是 2011 年而不是 2013 年 1 月 1 日。为什么会这样。如何使用execute(@query) 语句将答案设为2013-1-1 而不是2011
我在 sql 中有以下语句
declare @date varchar(20)
declare @query NVARCHAR(MAX)
set @date= '2013-1-1'
set @query= 'print '+@date+''
execute (@query)
我得到的答案是 2011 年而不是 2013 年 1 月 1 日。为什么会这样。如何使用execute(@query) 语句将答案设为2013-1-1 而不是2011
您的查询实际上是:
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'
你也可以这样尝试....这也会给你答案
声明@date varchar(20) 声明@query NVARCHAR(MAX)
set @date= '2013-1-1' set @query= 'print '''+@date+'''' 执行 (@query)