SELECT WHERE DATETIME 与另一个 DATETIME 在 4 小时内 SQL Server 2000

SELECT WHERE DATETIME is within 4 hours of another DATETIME SQL Server 2000

我有两个数据类型为日期时间的表,CreatedDate 和 CompletedDate 以及 我想找到 CompletedDate 在 CreatedDate 的四个小时内的所有行。

我的源数据库是 SQL Server 2000,它链接到我的 SQL Server 2008。

Created Date                Completed Date

2015-03-05 11:47:27.030     2015-03-06 17:32:58.107

使用dateadd()

where completeddate <= dateadd(hour, 4, createddate)

这应该适用于 SQL 服务器的两个版本。

注意:您要使用 dateadd() 而不是 datediff() 来获得恰好 4 小时。 datediff() 不计算两个日期时间之间的小时数。它计算两个日期时间之间 "hour transitions" 的数量。

此外,在执行此操作后,立即将旧数据库迁移到更新版本的 SQL 服务器。这应该是一个简单的过渡,强烈建议对任何应用程序使用受支持的软件。