mysql - 返回 future 的营业时间

标签 mysql

我正在尝试通过“至少开放至” 过滤器来搜索 field 。

我遇到的问题是,有些场所的营业时间是上午 8 点下午 6 点,有些场所的营业时间是晚上 10 点 >凌晨 3 点。一位 Nice SO 成员帮助我创建了这段代码,但是当我尝试修改它以进行搜索时,我注意到一个问题。

如果我查询营业时间至少到 20:00 的 field ,并且 field 开放时间为 11AM21:00 >,那么一切都ok

但是,如果我查询营业时间至少到 20:00 的场所,并且营业时间为 21:0003:00,然后返回关闭

如何显示仍关闭的场馆的营业时间?

这是我的代码:

SELECT
e.VENUE_NAME,
hrs.opening_day,
hrs.opening_time,
hrs.closing_time
FROM hours_of_operation hrs join venues e
  on hrs.venue_id = e.id
     and not is_closed
     and ((hrs.opening_day=date_format('$phpWhenDate' - INTERVAL (closing_time<opening_time and time('$phpWhenDate')<closing_time) DAY, '%a'))
          AND (closing_time<opening_time XOR
         (time('$phpWhenDate') >= least(opening_time,closing_time)
          and time('$phpWhenDate') < greatest(opening_time, closing_time))))

dataWhenDate 如下所示:2013-02-21 04:00:00

基本上,我使用 slider 来选择我希望 field 至少开放多长时间,并生成要发送的日期。

谢谢大家!

最佳答案

严格来说,在 21:0003:00 之间开放的场所,在查询营业时间至少 20 点时实际上应该返回为关闭状态: 00,因为它只在 21:00 开放。如果我是用户,如果开放时间至少为 20:00 显示的 field 仅在 21:00 开放,那么实际上会误导我。

如果您只是想显示哪些场馆在 20:00 之后开放,则只需将 20:00 与场馆的开放和关闭时间进行比较,如果大于 20:00 则在 20:00 之后开放(但您可能需要添加一个星号,向用户解释在 20 之后开放:00 包括 20:00 之后开放的场馆)。

关于mysql - 返回 future 的营业时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14988831/

相关文章:

php - 尝试将查询结果放在表格中?

php - laravel 5.5 中数据未保存到数据库

mysql - 什么样的数据库或者在mysql中实现的方式

php - 使用xampp访问localhost上的html/php文件时出现错误404

mysql更新列内部连接另一个表

mysql - 在mysql过程中的临时表中插入值

mysql - 如何在 MySQL 中重置 AUTO_INCRMENT

php - 按用户角色过滤 WordPress 评论

mysql - 如何使用laravel从mysql获取价格

php - 分页数据库查询问题