我有以下查询:
select A.ACCOUNT_NUM,
convert(date, B.EFFECTIVE_DATE, 112) as 'EFFECTIVE_DATE',
B.INTEREST_RATE
from Table1 A
left join Table2 B
on A.ACCOUNT_NUM = B.ACCOUNT_NUM
ACCOUNT_NUM 在两个表中都是 varchar(12),EFFECTIVE_DATE 是 varchar(8),格式为“20131018”这给了我一个“转换日期和/或时间字符串时转换失败”。如果我在没有转换的情况下运行查询,它运行良好。
但是,我已经使用 ISDATE() 检查了 EFFECTIVE_DATE 的内容,并且没有问题。另外,如果我执行以下操作:
select A.ACCOUNT_NUM,
B.EFFECTIVE_DATE,
B.INTEREST_RATE
into #temp
from Table1 A
left join Table2 B
on A.ACCOUNT_NUM = B.ACCOUNT_NUM
select convert(date, EFFECTIVE_DATE, 112)
from #temp
它正确地将列转换为日期格式,没有错误。请问我错过了什么,这让我发疯了,我敢肯定这是非常简单的事情!
谢谢