我刚刚设置了一个用于查询分析数据的视图。这是代码:
SELECT [Log Date] AS PI_TIMESTAMP, [Plant Area] + [Product] + [Process(Mfg)] + [Sample Point] +
[Test Name] + '_RESULT' AS ALIAS, [Result_Clean] AS PI_VALUE, 0 AS PI_STATUS
FROM dbo.vw_STARLIMS_PI
WHERE [Log Date] > ? AND
([Sample Status] = 'Done' OR
[Sample Status] = 'OOS' OR
[Sample Status] = 'Released' OR
[Sample Status] = 'Upload')
ORDER BY 1 ASC;
我收到以下错误。
消息 242,级别 16,状态 3,第 1 行 将 nvarchar 数据类型转换为 datetime 数据类型导致值超出范围。
这是[日志日期]格式。SQL 数据库正在使用 mdy。
2021-12-30 12:10:00.000
关于首先尝试什么的任何想法?我会假设有一些不正确的日志日期条目不会转换为此日期时间格式,但我不确定在这种情况下如何解决这个问题。我不确定还有什么其他可能导致此错误。我在这个领域相当年轻。
编辑:这是与日志时间格式相关的视图代码的摘录:
CAST(CONVERT(VARCHAR(24), LOGDATE, 101) + ' ' + LOGTIM AS DATETIME ) AS [Log Date]
这 ?查询中是上次扫描时间 (LST) 的占位符。查看文档,它似乎是 SQL_Timestamp 数据类型。
构成日志日期的 LOGTIM 和 LOGDATE 的数据类型
创建视图时,日志日期的时间部分似乎是从 nvarchar 转换而来的。LOGTIM 似乎是错误的原因。