我需要根据日期值加入两个表。
TableA
获得datetime
秒,包括分钟,如2001-04-30 16:59:00.000
TableB
获得了datetime
没有秒,包含的内容如2001-04-30 00:00:00.000
我想仅按日期加入
select * from dbo.TableA m
LEFT JOIN TableB z ON z.DocId=m.DocId
AND CHARGE_DATE=z.DocDate
没有给出正确的结果
答案 0 :(得分:2)
只要您100%确定TableB始终没有时间:
AND m.CHARGE_DATE >= z.DocDate
AND m.CHARGE_DATE < DATEADD(DAY, 1, z.DocDate)
或者
AND CONVERT(DATE, m.CHARGE_DATE) = z.DocDate
您可能希望根据索引在这两列中的有用性来翻转它们。