0

私はSQLに次のステートメントを持っています

 declare @date varchar(20)
 declare @query  NVARCHAR(MAX)

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

iamは2013-1-1ではなく2011として答えを得ています。なぜこれが起こっているのですか。execute(@query)ステートメントを使用して2011ではなく2013-1-1として回答を取得するにはどうすればよいですか

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 に答える