首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何选择日期时间差在给定持续时间内的记录

如何选择日期时间差在给定持续时间内的记录
EN

Stack Overflow用户
提问于 2022-11-17 10:04:56
回答 1查看 27关注 0票数 1

对于我在Laravel应用程序中的Log模型,我正在尝试选择“在特定差异内按顺序排列”的所有记录。我的意思是选择所有的结果日志,只要对于给定的datetime列,前一条记录和下一条记录之间的差异就在给定的时间差限制之内。

请参阅下面的查询和一些虚构的语法,以使我的意图得到理解。

代码语言:javascript
复制
Log::query()
  ->whereDateDiff('created_at', '<', '2 hours') // This method does not exist.
  ->get();

因此,假设我有以下数据。在这里,我想选择第4行之前的记录,包括第4行,因为第4行和第5行之间的时间差大于2小时。

代码语言:javascript
复制
----------------------------
| id | created_at          |
----------------------------
| 1  | 2022-11-17 08:01:52 |
| 2  | 2022-11-17 08:31:14 |
| 3  | 2022-11-17 09:02:49 |
| 4  | 2022-11-17 09:03:30 |
| 5  | 2022-11-17 16:21:12 |
| 6  | 2022-11-17 17:01:27 |
----------------------------

我在互联网上搜索了一种雄辩方法,但我还没有找到定义某种查询的方法。从此堆栈溢出问题(“连续行之间的日期差异”)学习,我们知道如何在SELECT语句中计算SQL中连续行之间的差异,但我想在WHERE中使用这个方法。我希望这在一个查询中是可能的,最好是使用一个雄辩的语法,但恐怕这只能在PHP层中实现。解决这个问题的最佳方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2022-11-17 15:02:25

我试着用一个以上的条件来解决这个问题。例如:

代码语言:javascript
复制
Log::where('created_at', '>=', $from)->where('created_at', '<=', $to)->get();

我想,生成$from和$to变量并不困难。其中一个是你想要的特定时间,然后使用碳,你可以提供另一个变量。然后,您可以在查询中提供它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74473512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档