2009-09-25 74 views
0

我有一个连接两个表的查询。 连接在多个列上完成,包括一个dateTime列。 我现在的问题是,一个dateTime列存储毫秒,而另一个表是从一个不包含毫秒的文件填充的 正因为如此,连接永远不会返回结果。MS SQL加入日期时间

有什么办法通过SQl忽略毫秒?

回答

1

如果aTable.date包含millisenconds和bTable.date没有,对它们进行比较:

... WHERE convert(varchar, aTable.date, 120) = bTable.date 

转换日期时间与ARG2为varchar = 120产生这种格式:ODBC canonical yyyy-mm-dd hh:mi:ss

+0

完美的作品,谢谢! – kilhra 2009-09-25 08:07:59

+0

这增加了另一个明确的转换回日期时间。 – gbn 2009-09-25 15:35:21

0

这仍然有一个函数但避免字符串和转换

WHERE 
    aTable.date >= bTable.date 
    AND 
    aTable.date < DATEADD(second, 1, bTable.date)