sql - 使用 CONVERT 和 DATEPART 函数在 SQL Server 2014 中加入时具有相同值的两个日期失败
问题描述
我在加入 SQL Server 2014 中的两个日期时遇到了一个非常奇怪的问题。我的 where 子句中有如下条件:-
SELECT
a.*, w.*
FROM
TABLE1 a, TABLE2 w
WHERE
CONVERT(varchar(8), ISNULL(a.Col1,999), 112) + ' ' + CONVERT(VARCHAR, DATEPART(hh, ISNULL(a.Col1,999))) + ':' + RIGHT('0' + CONVERT(VARCHAR, DATEPART(mi, ISNULL(a.Col1,999))), 2)
= CONVERT(varchar(8),ISNULL(w.Col2,999),112) + ' ' + CONVERT(VARCHAR, DATEPART(hh, ISNULL(w.Col2,999))) + ':' + RIGHT('0' + CONVERT(VARCHAR, DATEPART(mi, ISNULL(w.Col2,999))), 2)
这里Col1
inTable1
和Col2
inTable2
都是 type VARCHAR(18)
。
当使用CONVERT
andDATEPART
函数单独选择时,两者都返回相同的值,但在连接条件中使用时会失败并出现以下错误:
遇到错误 - 241从字符串转换日期和/或时间时转换失败
表 1 数据中 Col1 的示例:- “20190227 17:20:40”
任何帮助都非常感谢!