我有一个日期时间列和一个存储过程,应该检查传递的参数与列的日期时间之间的差异。SQL检查日期时间差
基本上,我想返回大于或小于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年7月20日10:02:00”,则返回值应该是
1
3
4
因为它们都在5分钟的范围内,少于或多于传递的参数。
现在的问题是,如何?
RTFM:http://msdn.microsoft.com/en-us/library/ms189794.aspx –
针对使用'答案使用'DateDiff()'的Abs()' - 这将停止优化器能够使用'[Date]'字段上的任何索引。 – gvee
只是为了好玩:)'SELECT GETDATE(, \t CAST(CAST(GETDATE()AS FLOAT)+ 0.003472222222 AS DATETIME), \t CAST(CAST(GETDATE()AS FLOAT) - 0.003472222222 AS DATETIME )' – SQLMason