0

我刚刚设置了一个用于查询分析数据的视图。这是代码:

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 数据类型。

dbo.vw_STARLIMS_PI 中的数据类型

构成日志日期的 LOGTIM 和 LOGDATE 的数据类型

创建视图时,日志日期的时间部分似乎是从 nvarchar 转换而来的。LOGTIM 似乎是错误的原因。

4

0 回答 0