【问题标题】:Where query with Time.now使用 Time.now 在哪里查询
【发布时间】:2016-02-09 23:30:48
【问题描述】:

我想实现以下目标:

Model.where("asdasd = ? AND to <= ?", nil, Time.now).each do |model|

我收到以下错误:

ActiveRecord::StatementInvalid: SQLite3::SQLException: near "to": syntax error: SELECT "bla".* FROM "table" WHERE (asdasd = NULL AND to <= '2015-11-09 10:18:14.777643')

我也在另一个控制器中使用了相同的方法,在那里我得到了同样的错误。实现我想要的正确方法是什么?我也很确定它已经这样工作了,是否还有其他原因导致此问题?

谢谢!!!

【问题讨论】:

    标签: ruby-on-rails ruby sqlite ruby-on-rails-4


    【解决方案1】:

    TO 是 SQL 关键字,需要在查询中引用。 SQLite 关键字列表在SQLite documentation 中可用。

    其他数据库引擎具有相似(但不相同)的规则和关键字列表,因此如果您从 SQLite 更改,请检查新引擎的规则。

    【讨论】:

      猜你喜欢
      • 2018-07-05
      • 1970-01-01
      • 2020-12-19
      • 2011-08-22
      • 1970-01-01
      • 1970-01-01
      • 2021-09-01
      • 2017-03-23
      • 1970-01-01
      相关资源
      最近更新 更多