选择Time.now在两个日期时间字段之间的记录

时间:2017-12-29 19:21:37

标签: sql ruby-on-rails activerecord time

我在starts_at表中有ends_atActivity列。

我想要做的是选择Time.now在这两列中的日期时间之间的所有记录。

3 个答案:

答案 0 :(得分:1)

你可以做到:

now = Time.now
Activity.where('starts_at < ? AND ends_at > ?', now, now)

您也可以使用包容性不等式操作数(<=>=

答案 1 :(得分:1)

试试这个

Activity.where("? BETWEEN starts_at AND ends_at", Time.zone.now)

答案 2 :(得分:0)

尝试尖叫宝石,你会喜欢它,然后你可以使用它:

Activity.where{starts_at < Time.now & ends_at > Time.now}

或者第二个选项可以是。

Actualy与某些ORM不同,活动记录不会使用允许以这种方式表示除等式之外的表达式的方法来扩充符号类。你只需要做

Activity.where('starts_at&lt; =?AND ends_at&gt; =?',Time.now,Time.now)