【发布时间】:2009-09-25 07:41:50
【问题描述】:
我有一个连接两个表的查询。 连接是在几个列上完成的,包括一个 dateTime 列。 我目前遇到的问题是一个 dateTime 列存储毫秒,而另一个表是从不包含毫秒的文件中填充的 因此,连接永远不会返回结果。
有没有办法通过 SQl 忽略毫秒?
【问题讨论】:
标签: sql sql-server datetime
我有一个连接两个表的查询。 连接是在几个列上完成的,包括一个 dateTime 列。 我目前遇到的问题是一个 dateTime 列存储毫秒,而另一个表是从不包含毫秒的文件中填充的 因此,连接永远不会返回结果。
有没有办法通过 SQl 忽略毫秒?
【问题讨论】:
标签: sql sql-server datetime
如果 aTable.date 包含毫秒而 bTable.date 不包含,则比较它们:
... WHERE convert(varchar, aTable.date, 120) = bTable.date
使用 arg2=120 将 datetime 转换为 varchar 会产生这种格式:ODBC canonical yyyy-mm-dd hh:mi:ss
【讨论】:
这仍然有一个功能,但避免字符串和转换
WHERE
aTable.date >= bTable.date
AND
aTable.date < DATEADD(second, 1, bTable.date)
【讨论】: