如何搜索与SQL两行之间寻找日期时间?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何搜索与SQL两行之间寻找日期时间?相关的知识,希望对你有一定的参考价值。
我想按日期和时间范围来搜索数据库中的行。每一行都会有timewritten但如果我挑的范围将包括在两行之间的范围将包括在结果中。第一个前不拉的上一行。任何人有什么建议?
值表:
tempTable ------------------------------- rowId timewritten 1 2019-02-05 22:14:30.200 2 2019-02-05 22:16:39.513 3 2019-02-05 22:37:27.437 4 2019-02-05 22:58:21.343 5 2019-02-05 23:00:50.400 -------------------------------
select *
from temptable
where TimeWritten >= '2019-02-05 22:20:00'
and timewritten <= '2019-02-05 22:57:00'
tempTable ------------------------------- rowId timewritten 1 2019-02-05 22:16:39.513 2 2019-02-05 22:37:27.437 3 2019-02-05 22:58:21.343 -------------------------------
答案
之前和之后(如果有的话),你可以使用窗口函数获取一行:
select t.*
from (select t.*,
lag(timewritten, 1, timewritten) over (order by timewritten) as prev_TimeWritten,
lead(timewritten, 1, timewritten) over (order by timewritten) as next_TimeWritten
from temptable t
) t
where next_TimeWritten >= '2019-02-05 22:20:00' and
prev_timewritten <= '2019-02-05 22:57:00';
以上是关于如何搜索与SQL两行之间寻找日期时间?的主要内容,如果未能解决你的问题,请参考以下文章
如何将多个日期之间的搜索与 Spring Data JPA 的 CrudRepository 结合起来?