如何在时间范围内获取记录
How to get records between a timeframe
我有一个名为 Event 的简单模型。
我正在尝试在接下来的 30 分钟内获取 scheduled_at:datetime
的事件。
我试过了,但它没有像我需要的那样工作 - 我一定是做错了什么。
Event.where('scheduled_at > ?', Chronic.parse('now'))
.where('scheduled_at < ?', Chronic.parse('30 minutes from now'))
.find_each do |event|
puts event.id
end
您可以使用:
Event.where(scheduled_at: DateTime.now..(DateTime.now + 30.mins))
下面的查询将为您提供给定日期和时间之间的数据。最好你只检查控制台中的记录。
Event.where('date(scheduled_at) > ?', Chronic.parse('now'))
.where('date(scheduled_at) < ?', Chronic.parse('30 minutes from now'))
Event.where(scheduled_at: DateTime.now..(DateTime.now + 30.minutes))
Event.where(:scheduled_at => DateTime.now..(Time.zone.now + 30.minutes))
Event.where{'scheduled_at ? '> DateTime.now & 'scheduled_at ?' < DateTime.now + 30.mins}
我有一个名为 Event 的简单模型。
我正在尝试在接下来的 30 分钟内获取 scheduled_at:datetime
的事件。
我试过了,但它没有像我需要的那样工作 - 我一定是做错了什么。
Event.where('scheduled_at > ?', Chronic.parse('now'))
.where('scheduled_at < ?', Chronic.parse('30 minutes from now'))
.find_each do |event|
puts event.id
end
您可以使用:
Event.where(scheduled_at: DateTime.now..(DateTime.now + 30.mins))
下面的查询将为您提供给定日期和时间之间的数据。最好你只检查控制台中的记录。
Event.where('date(scheduled_at) > ?', Chronic.parse('now'))
.where('date(scheduled_at) < ?', Chronic.parse('30 minutes from now'))
Event.where(scheduled_at: DateTime.now..(DateTime.now + 30.minutes))
Event.where(:scheduled_at => DateTime.now..(Time.zone.now + 30.minutes))
Event.where{'scheduled_at ? '> DateTime.now & 'scheduled_at ?' < DateTime.now + 30.mins}