我在Activity
表中有starts_at
和ends_at
列。
我想做的是选择这两列中日期时间之间Time.now
的所有记录。
试试这个
Activity.where("? BETWEEN starts_at AND ends_at", Time.zone.now)
您可以简单地执行以下操作:
now = Time.now
Activity.where('starts_at < ? AND ends_at > ?', now, now)
您也可以改用包含不等式操作数(<=
和>=
(
尝试尖叫宝石,你会喜欢它,然后你可以使用它:
Activity.where{starts_at < Time.now & ends_at > Time.now}
或者第二种选择可以是。
实际上 与某些 ORM 不同,活动记录不会使用允许以这种方式表示相等以外的表达式的方法增强符号类。你只需要做
Activity.where('starts_at <= ?和 ends_at>= ?', 时间现在, 时间现在(