【发布时间】:2020-09-15 17:18:13
【问题描述】:
我正在尝试执行动态 SQL 查询,但我收到错误消息 105, Level 15, State 1, Line 1 字符串'2020-09-15 18:'后的非闭合引号。 消息 102,第 15 级,状态 1,第 1 行 '2020-09-15 18:' 附近的语法不正确
datetime 变量一定有问题。 有人可以建议如何正确完成吗?
declare @paramDailyOutput nvarchar(100), @retrieveDailyVal real
declare @paramDaily float
declare @retrieveDailyID varchar(100) = 'table_53'
declare @startTime datetime, @currTime datetime = GETDATE()
set @startTime = DATEADD(hour, -1, @currTime)
set @paramDailyOutput = 'SELECT @paramDaily = max(value) - min(value) FROM ' + @retrieveDailyID + ' where read_date between ''' + convert(nvarchar(200), @startTime, 120) + ''' and ''' + convert(nvarchar(200), @currTime, 120) + ''''
exec sp_executesql @paramDailyOutput, N' @paramDaily float OUTPUT', @paramDaily = @paramDaily output
select @paramDaily
【问题讨论】:
-
要编写动态sql,您必须能够在出现问题时对其进行调试。因此,不要愤怒地退出开发,只需选择您生成的字符串,这样您就可以准确地看到您编写的代码做了什么。
标签: sql-server tsql