【发布时间】:2017-12-25 11:55:04
【问题描述】:
我有以下 SQL 查询:
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX),
@OID AS NVARCHAR(MAX) = '(105, 106)',
@startDate DATETIME = DATETIMEFROMPARTS(2017, 11, 01, 17, 0, 0, 0),
@endDate DATETIME = DATETIMEFROMPARTS(2017, 11, 25, 17, 0, 0, 0)
SELECT @cols = STUFF((SELECT ',' + QUOTENAME(Point)
FROM Value
GROUP BY Point
ORDER BY Point
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '')
SET @query = 'SELECT timestamp,' + @cols + ' from
(
select timestamp, point, valuenumeric
from value where point in ' + @OID + ' and Timestamp between ' +
@startDate + ' and ' + @endDate + '
) x
pivot
(
avg(valuenumeric)
for point in (' + @cols + ')
) p '
execute(@query);
但我收到此错误:
消息 241,第 16 级,状态 1,第 16 行
从字符串转换日期和/或时间时转换失败。
【问题讨论】:
标签: sql sql-server pivot dynamic-sql