使用CONVERT和DATEPART函数加入SQL Server 2014时,两个具有相同值的日期失败

时间:2019-02-27 19:48:31

标签: sql 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中的Table1Col2中的Table2的类型为VARCHAR(18)

同时使用CONVERTDATEPART函数选择时,两者都返回相同的值,但是在联接条件下使用时,它将失败并显示以下错误:

  

遇到错误-241从字符串转换日期和/或时间时转换失败

表1数据中Col1示例:-“ 20190227 17:20:40”

任何帮助都是由衷的感谢!

0 个答案:

没有答案