gpt4 book ai didi

mysql - 根据日期范围检查行数与日期范围

转载 作者:行者123 更新时间:2023-11-29 11:05:44 25 4
gpt4 key购买 nike

请问mysql有没有办法做到这一点。我知道可以通过循环来完成,但感觉必须有更好的方法。

我有餐 table 假期

 id | date_from | date_to
1 2017-02-16 2017-02-19
2 2017-02-18 2017-02-21
3 2017-02-12 2017-02-19
4 2017-02-19 2017-02-21

问题是,该用户选择了他想要预订的日期范围,例如 2017-02-14 到 2017-02-24,我必须检查他是否仍然可以请求,因为只有 4 人可以同时请求休假。

所以我需要查询来检查用户选择的范围(例如 2017-02-14 到 2017-02-24)中是否有 4 行或更多行。

预先感谢您的回答。

最佳答案

您可以在任何一天执行此操作:

select count(*)
from vacation v
where '2017-02-14' between date_from and date_to;

您可以通过指定每一天来将其扩展到一个范围:

select dte, count(v.id)
from (select date('2017-02-14') as dte union all
select date('2017-02-15') as dte union all
select date('2017-02-16') as dte union all
select date('2017-02-17') as dte union all
select date('2017-02-18') as dte union all
. . .

) d left join
vacation v
on d.dte between date_from and date_to
group by d.dte
having count(*) > 4;

在应用程序端循环可能会更简单。或者,使用日历表(如果有的话)。

关于mysql - 根据日期范围检查行数与日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41444287/

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