gpt4 book ai didi

mysql - 查询以查找日期介于开始日期和结束日期之间的记录,其中日期可能会重置为 0

转载 作者:行者123 更新时间:2023-11-29 14:13:12 24 4
gpt4 key购买 nike

我们的应用程序中有每周重复发生的事件,并决定将每个事件的开始和结束时间存储为从一周开始(周日上午 12 点)算起的秒数。这使得查询、排序等变得更加容易。

但是,有一个小问题:如果我们想要获取在接近重置周的某个时间发生的事件,该事件可能会弥补这一差距,从而使查询变得困难。

一个普通查询,99% 的时间都有效,用于抓取给定时间介于记录开始时间和结束时间之间的记录。

time = 216000 # Tuesday, 12:00PM
SELECT * FROM events WHERE start_time <= 216000 AND end_time > 216000

困难的部分是当有一个事件从周六晚上 11 点开始,到周日凌晨 2 点结束时:

time = 3600 # Sunday, 1am
SELECT * FROM events WHERE start_time <= 3600 AND end_time > 3600

这不会返回任何内容,因为 start_time 不会小于 3600,因为它是在每周周期结束时开始的。

我花了几个小时绞尽脑汁试图想出一个好的解决方案,但到目前为止还不够,所以我想向 SO 打开它,看看是否有我想要的解决方案我没有想到。我有一种感觉,我可以使用一些简单的数学方程来完成此任务,但数学不是我最好的科目:)

如果我需要更好的解释或提供更好的示例,请告诉我。

谢谢!

最佳答案

您可以尝试以下操作:

select * from events 
where (start_time <= 3600 or start_time>end_time) and end_time > 3600;

这样您就能够捕获在休息时间之前开始且在指定时间仍在发生的事件。

关于mysql - 查询以查找日期介于开始日期和结束日期之间的记录,其中日期可能会重置为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13112411/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com