【问题标题】:SELECT WHERE DATETIME is within 4 hours of another DATETIME SQL Server 2000SELECT WHERE DATETIME 在另一个 DATETIME SQL Server 2000 的 4 小时内
【发布时间】:2015-05-09 19:11:42
【问题描述】:
我有两个日期时间数据类型的表 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
【问题讨论】:
标签:
sql
sql-server
datetime
sql-server-2000
【解决方案1】:
使用dateadd()
where completeddate <= dateadd(hour, 4, createddate)
这应该适用于两个版本的 SQL Server。
注意:您希望使用 dateadd() 而不是 datediff() 来获得正好 4 小时。 datediff() 不计算两个日期时间之间的小时数。它计算两个日期时间之间的“小时转换”次数。
此外,在您执行此操作后,将旧数据库迁移到较新版本的 SQL Server。这应该是一个简单的过渡,强烈建议对任何应用程序使用受支持的软件。