如何搜索与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 结合起来?

如何使用活动记录查询sql以获取指定时间之间的日期

SQL 中 2 个日期之间的 SQL 搜索

使用 JDBC 在 SQL 中的日期之间搜索?

sql 日期转换代码片段 - Dato,120,konvertere

如何在Android中的主/细分片段之间进行适当的导航?