0

我在 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

4

2 回答 2

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'
于 2013-03-04T06:24:43.927 回答
0

你也可以这样尝试....这也会给你答案

声明@date varchar(20) 声明@query NVARCHAR(MAX)

set @date= '2013-1-1' set @query= 'print '''+@date+'''' 执行 (@query)

于 2013-03-06T09:31:16.573 回答