【发布时间】:2018-06-10 04:16:18
【问题描述】:
Activity 表中有 starts_at 和 ends_at 列。
我想要做的是选择Time.now 在这两列中的日期时间之间的所有记录。
【问题讨论】:
-
您可以在帖子中添加表格的示例行吗?
标签: sql ruby-on-rails activerecord time
Activity 表中有 starts_at 和 ends_at 列。
我想要做的是选择Time.now 在这两列中的日期时间之间的所有记录。
【问题讨论】:
标签: sql ruby-on-rails activerecord time
试试这个
Activity.where("? BETWEEN starts_at AND ends_at", Time.zone.now)
【讨论】:
你可以这样做:
now = Time.now
Activity.where('starts_at < ? AND ends_at > ?', now, now)
您也可以改用包含不等式操作数(<= 和 >=)
【讨论】:
试试squeal gem,你会喜欢的,然后你可以用这个:
Activity.where{starts_at < Time.now & ends_at > Time.now}
或者第二个选项可以。
实际上与某些 ORM 不同,活动记录不会使用方法来增加符号类,以允许以这种方式表达除相等之外的表达式。你只需要这样做
Activity.where('starts_at = ?', Time.now, Time.now)
【讨论】: