关于ruby:在Rails的.where()中比较日期时间和日期

Comparing datetime and date in a .where() on Rails

我正在使用一个事件系统,管理员可以在其中选择要显示的事件并添加促销文字。由于他们需要添加其他文本,因此特色事件位于其自己的表中,并引用事件详细信息。

我现在正尝试输出下周每一天的特色活动。简化示例:

1
2
day = DateTime.now.to_date
featured_events = @featured_events.where('event.start_datetime = ?', day)

问题在于start_datetime为日期时间格式,而day为日期格式,因此它始终不输出任何内容。可以将这两个值与.where()进行比较吗?

谢谢!


可能正在您的位置:

1
@featured_events.where('event.start_datetime > ? and event.start_datetime < ?', DateTime.now, 1.day.from_now.beginning_of_day)


您没有说您正在使用哪个数据库。

在PostgreSQL中,我们将截断数据库查询中的日期时间,以便DBM可以进行比较。在MySQL上,我们将使用函数将datetime转换为日期。