在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
中的Table1
和Col2
中的Table2
的类型为VARCHAR(18)
。
同时使用CONVERT
和DATEPART
函数选择时,两者都返回相同的值,但是在联接条件下使用时,它将失败并显示以下错误:
遇到错误-241从字符串转换日期和/或时间时转换失败
表1数据中Col1示例:-“ 20190227 17:20:40”
任何帮助都是由衷的感谢!