0

我有一个日期时间列和一个存储过程,它应该检查传递的参数与列的日期时间之间的差异。

基本上,我想用 5 分钟多或少的时间返回差异。

例如,我有下表:

ID | Date
----------
1  | 2013-07-20 10:00:00
2  | 2013-07-20 11:00:00
3  | 2013-07-20 10:01:00
4  | 2013-07-20 10:03:00

例如,如果传递的参数是“2013-07-20 10:02:00”,则返回值应该是

1
3
4

因为它们都在小于或大于传递参数的 5 分钟范围内。

现在的问题是,怎么做?

4

2 回答 2

3
DECLARE @date datetime = '2013-07-20 10:02:00';

SELECT id
FROM   your_table
WHERE  date_field >= DateAdd(mi, -5, @date)
AND    date_field <  DateAdd(mi, +5, @date);
于 2013-07-30T14:26:16.490 回答
1

使用DATEDIFF

SELECT * FROM dbo.Table1
WHERE ABS(DateDiff(minute,@date,Date))<=@diffMin

演示

于 2013-07-30T14:29:15.937 回答