mysql - 10 :00 - 00:00 之间的 Rails ActiveRecord 时间

标签 mysql ruby-on-rails ruby postgresql activerecord

使用 PostgreSQL 运行 4.2.3。

数据库表 company 有字段:

start_day_time: 字符串 end_day_time: 字符串

存储小时:分钟,如:

开始时间:10:00,结束时间:23:00

ActiveRecord,其中通过此字段进行比较的表达式运行良好。我可以轻松找到当前开放的公司

today_date = Time.zone.now
today_date_time = today_date.strftime('%H:%M')
Company.where(
'start_day_time < ? AND end_day_time > ?', today_date_time, today_date_time
)

问题

但是当 end_day_time 为 00:00 时比较失败。只有当我使用 23:59 时它才有效。

有办法解决这个问题吗? 我可以在我的 sql 表达式中使用额外的规则来临时将 00:00 变为 23:59 仅用于此查询吗?

最简单的方法——不要在此字段中存储 00:00。但是他们在用户界面中使用来显示公司的工作时间。

最佳答案

我最近刚做了这样的事情。
在我的模型中,我创建了一个名为 happening_now 的方法?

原来是这样的

  def happening_now?
    Time.now.strftime('2000-01-01 %H:%m:%S').between?(self.starts_st, self.ends_at)
  end

希望对您有所帮助。

关于mysql - 10 :00 - 00:00 之间的 Rails ActiveRecord 时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32024532/

相关文章:

mysql - 如何将 MySQL 中的逗号分隔名称字段分隔为名字、中间名、姓氏和全名?

ruby-on-rails - rake 数据库 :seed refuses to insert data into a particular database column

mysql - Sidekiq 在 AWS RDS 上返回 "ActiveRecord::ConnectionTimeoutError: could not obtain a database connection within 5.000 seconds (waited 5.000 seconds)"

ruby-on-rails - 使用 rake generate 时如何显示进度?

ruby - 在 Ruby 中实现 DSL 以生成特定于域的 XML

php - json_encode 数组和其他数据

mysql - 一天后在 MySQL 中插入新列

php - Mysql 在一个查询中替换两个值?

ruby-on-rails - 如何在 haml 的 link_to 标签中设置 ID?

ruby-on-rails - rails : Microservice architecture with dedicated authorization service and app services using Knock (JWT)