尝试搜索出现的电影的发布日期大于今天的日期
Movie.where('release > ?', Date.today)
ActiveRecord::StatementInvalid: Mysql::ParseError: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'release > '2011-09-25')' at line 1: SELECT `movies`.* FROM `movies` WHERE (release > '2011-09-25')
答案 0 :(得分:86)
尝试Movie.where(['release > ?', DateTime.now])
或者在Rails 3+中:Movie.where('release > ?', DateTime.now)
答案 1 :(得分:10)
Rails核心团队决定暂时撤消此更改,以便对其进行详细讨论。有关更多信息,请参见this comment和this PR。
我仅出于教育目的而保留答案。
Movie.where('release >': DateTime.now)
这里是a link to PR,您可以在其中找到更多示例。
答案 2 :(得分:5)
在最新版本的rails中,您可以执行以下操作:
User.where(created_at: 3.days.ago..Time.now)
在此处查看其他示例:https://stackoverflow.com/a/24150094
答案 3 :(得分:0)
在 Ruby 2.7 中,你可以试试这个:
License.where(expiration: Time.zone.today..)
SELECT "licenses".* FROM "licenses" WHERE "licenses"."expiration" >= '2021-07-06 15:12:05'