如何在sql中获取下一个即将到来的日期/时间

时间:2016-10-01 10:14:36

标签: sql-server datetime

我正在寻找一个sql查询来获取下一次祷告之前的日期时间。例如,下一次祷告前5分钟。

ID , Prayer_ID, TIME
661,         1, 2016-10-01 04:57:00.000
662,         2, 2016-10-01 12:11:00.000
663,         3, 2016-10-01 15:34:00.000
664,         4, 2016-10-01 18:09:00.000
665,         5, 2016-10-01 19:39:00.000
666,         1, 2016-10-02 04:57:00.000
667,         2, 2016-10-02 12:10:00.000
668,         3, 2016-10-02 15:34:00.000
669,         4, 2016-10-02 18:08:00.000
670,         5, 2016-10-02 19:38:00.000
671,         1, 2016-10-03 04:57:00.000
672,         2, 2016-10-03 12:10:00.000
673,         3, 2016-10-03 15:33:00.000
674,         4, 2016-10-03 18:07:00.000
675,         5, 2016-10-03 19:37:00.000

让我们说下一个祷告时间是2016-10-01 15:34:00.000。我要求的输出是2016-10-01 15:29:00.000。输出是下次祷告之前准确5 minutes的时间。

1 个答案:

答案 0 :(得分:0)

你可以在当前的祈祷时间上添加-5分钟。 例如:

Select *, DateAdd(Minute, -5, [Time]) As AlertTime
From MyTable

但是,如果您在阅读当前记录时想要提醒下一条记录,则可以使用“提前”功能。

Select *, DateAdd(Minute, -5, 
 Lead([Time]) Over(order by ID)) As AlertTime
from myTable