mysql 时间周期_mysql – SQL Quires中的时间周期问题.

在我的rails应用程序中,当前在每个餐厅的应用程序中都有打开和关闭时间表.喜欢

Monday 5:00 AM to 11:45 PM

Tuesday 6:00 AM to 11:00 PM

Wednesday 9:00 AM to 8:00 PM

Thursday 11:00 AM to 11:45 PM

Friday 5:00 AM to 11:45 PM

Saturday 5:00 AM to 11:45 PM

我用24小时数据库时间格式将上述时间保存到数据库中.它工作得非常好.当我试图获取有关24小时时间的开放餐厅时间的信息时,我能够从数据库中查询数据.但现在我的客户希望关闭时间可以是凌晨2点,凌晨2:30,因为餐厅在午夜之后肯定会关闭.

如何在SQL Quires中进行管理?如何检查餐厅是否开放的特定时间段?

目前我执行了以下Query:

SELECT

COUNT(*)

FROM

`sechedules`

WHERE

`sechedules`.`sechedulable_id` = 16

AND `sechedules`.`sechedulable_type` = 'Operation'

AND (day = 'Wednesday')

AND (opening_time <= '21:28:23'

and closing_time >= '02:28:23'

and is_closed = 0);

我可以改变一天的周期.它可以从早上5点到凌晨4点59分开始.但是如何在数据库比较中管理我没有得到最好的解决方案.

最佳答案 我建议你围绕开始时间和持续时间制定你的查询.您可以从当前的数据集中执行此操作.此查询从表中获取开始时间和持续时间.

select weekday,

start,

stop,

timediff(

if (TIMESTAMPDIFF(MINUTE,start,stop)<0,stop+INTERVAL 24 HOUR, stop),

start) duration

from sechedules

正如你所看到的,如果它显示早于开放时间,那么它会在关闭时间内增加24小时.

然后,您可以查看与此类特定时间段匹配的记录数.

select count(*) cnt

where sechedulable_id = 16

and day = 'Wednesday'

and start <= '21:28:23'

and '21:28:23' <= if(TIMESTAMPDIFF(MINUTE,start,stop)<0,stop+INTERVAL 24 HOUR, stop)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值