在我的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分开始。 但是如何在数据库比较中管理我没有得到最好的解决方案。

#1楼 票数:2 已采纳

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

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)

  ask by Baran translate from so

未解决问题?本站智能推荐:

1回复

查询处理时间更多..检索数据中的性能问题

我的模型设计有些复杂,彼此之间有许多联系。 这是模型设计 用户模型 记录模型 RecordType学生模型 其他两个RecordTypeOther和RecordTypeEmployee的相似模型 我还在RecordTypeStudent,Other和Empl
1回复

在Rails中禁用直接SQL查询

我们正在运行一个rails + mysql应用程序。 根据我的特定要求,我希望所有开发人员仅通过rails API访问mysql。 我想禁用ActiveRecord之外的所有直接mysql查询。 这是因为我们在activerecord上运行了许多回调来维护数据的完整性。 如何实现
1回复

如何在Ruby on Rails中实现此SQL查询

我在这里有这个美味的SQL查询,我试图找出如何使用其活动记录方法在Rails中实现==> .select().where()等... SELECT topics.id FROM topics WHERE NOT EXISTS ( SELECT * FROM votes WHERE vote
2回复

Rails将日期时间存储在GMT中,尽管它已转换为本地时间

我的MySQL在GMT中存储日期时间戳,尽管服务器的时间在EST中。 在添加到MySQL之前,我将日期时间转换为本地时间(服务器的日期时间EST),但它存储的是GMt而不是EST。 怎么了
1回复

如何有效检查SQL查询中是否存在记录?

用户场景如下。 我的申请有公司清单。 每个公司都有一个唯一的号码(电话号码)分配给它。 使用Google的API服务,该应用程序可以提取可能已经注册到我的应用程序或未注册到我的应用程序的公司。 因此,从API调用中,我想通过从应用程序中搜索电话号码来删除已经注册的公司。 A
2回复

仅列出与Rails中的用户相关的问题3

用户 调查 尺寸 题 以下关系: USER(has_many)->调查 调查(has_many)->尺寸 维度(has_many)->问题 ============================== 我只需要列
2回复

SQL在Rails中查询的位置

当我输入: 返回错误: 这怎么了 如您所知,我想知道注册1天后保留了多少用户。
1回复

在Ruby On Rails中改变SQL查询结果

我有一个功能: 奇怪的是,当我连续运行此函数(通过脚本/运行器-e ...)时,结果有所不同。 有时大约打印30个报告,而有时只打印15个报告(有时根本不返回结果)。 你们知道发生了什么吗? 我的数据库是MYSQL。 另外,如果我将环境更改为“开发”,或者如果我省略了JOIN