gpt4 book ai didi

mysql - 查找日期之间的可用时间段

转载 作者:行者123 更新时间:2023-11-30 23:13:06 26 4
gpt4 key购买 nike

我正在为预订日历创建一个 REST API,现在我正在尝试找出最有效的方式来编写一个查询,该查询以 15 分钟的间隔返回两个日期之间的所有时间戳。如果我提供 2013-09-212013-09-22 我想得到:

2013-09-21 00:15:00
2013-09-21 00:30:00
2013-09-21 00:45:00
2013-09-21 01:00:00
2013-09-21 01:15:00
2013-09-21 01:30:00
...
2013-09-22 23:15:00
2013-09-22 23:30:00
2013-09-22 23:45:00

然后我会将此查询用作子查询并对其应用一些条件以删除工作时间以外的时间段(不固定)、预订的时间段等。

我看过很多博文,其中作者创建了一个存储所有这些时间戳的“日历表”,但这对我来说似乎是一种浪费,因为不需要存储这些数据。

关于如何执行此操作或获取/存储数据的更好方法有什么建议吗?

最佳答案

这是一个生成 95 行的过程,该行会随着日期变量的增加而递增,然后将带有日期条目的表左连接到已生成日期行的“实体”表。

select str_to_date('2010-01-01', '%Y-%m-%d') into @ad;

select * from

(select (@ad := date_add(@ad, INTERVAL 15 MINUTE)) as solid_date from wp_posts limit 95) solid
left join
wp_posts
on solid.solid_date = post_date

我不知道如何在 mysql 中生成任意数量的行,所以我只是从一个超过 95 行的表中选择(24 小时 * 每小时 4 次约会减去午夜一次)——我的 wordpress 帖子 table 。如果没有更好的方法来做到这一点(我是 oracle 专家而不是 mysql 专家),没有什么能阻止您制作这样一个表并在其中包含一个带有单个递增整数的列。也许没有一个:How do I make a row generator in MySQL?

在您看到 wp_posts 的地方,替换您的约会表的名称。在您看到日期的地方,替换您的开始日期。

上面的查询生成一个日期列表,从所选日期的午夜后 15 点开始(在我的示例中为 2010-01-01)

如果只想查找空闲槽,可以添加WHERE appointments.primary_key_column_here IS NULL

请注意,您没有在规范中包含午夜。如果您想在第一天的午夜开始,请在变量中提前 15 分钟开始日期并将自己限制为 96 行。如果你想在结束日的午夜,把自己限制在 96 行

关于mysql - 查找日期之间的可用时间段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19088659/

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