动态选择最近48小时

时间:2014-05-09 14:34:31

标签: tsql

我有一张有两个约会的桌子。

Date A
Date B

我需要在日期A后48小时内选择日期B发生的所有行。

样本数据

Date A          Date B
1/28/2011   1/19/2014
12/21/2010  1/18/2014
2/5/2014    2/7/2014

在这种情况下,第3行符合条件

2 个答案:

答案 0 :(得分:1)

SELECT DateA, DateB
FROM dbo.TableName
WHERE DATEDIFF(hour, DateA, DateB) <= 48

Sql-Fiddle

如果ABS不重要,请使用{{1}}。

答案 1 :(得分:1)

DATEADD()应该做到这一点。 SELECT DATEADD(hh, 48, getdate())从现在起48小时后返回。

在您的示例中,您可以使用日期A替换getdate(),其位置为:

SELECT DateB
FROM   x
WHERE  DateB BETWEEN DateA AND DATEADD(hh, 48, DateA)