2017-02-18 3 views
0

Ich versuche, Datensätze auf der Datenbank auf localhost abzurufen.Schienen | SQL wo für Datum und Datum

Meine Spalten von & sind Datumsbereiche und ich möchte Datumsbereich zu Datum konvertieren, um Datensätze zu finden. date = Date.parse(2017-02-17) sc = schedules.where("from <= ? AND to >= ?",date,date) gibt Fehler;

SELECT "schedule_days".* FROM "schedule_days" WHERE "schedule_days"."car_id" = ? AND (from <= '2017-02-17' AND to >= '2017-02-17') [["car_id", 2]] SQLite3::SQLException: near "from": syntax error: SELECT "schedule_days".* FROM "schedule_days" WHERE "schedule_days"."car_id" = ? AND (from <= '2017-02-17' AND to >= '2017-02-17') ActiveRecord::StatementInvalid: SQLite3::SQLException: near "from": syntax error: SELECT "schedule_days".* FROM "schedule_days" WHERE "schedule_days"."car_id" = ? AND (from <= '2017-02-17' AND to >= '2017-02-17')

Ist das Problem, weil von & Datetime sind ?. Ich habe es auch versucht;

schedules.where("date(from) <= ? AND date(to) >= ?",date,date) kein Glück. Ich werde dann diesen Code nach heroku postgresql

Antwort

1

FROM ist ein reserviertes Wort in SQL. Möglicherweise erkennt der Parser nicht, dass Sie sich auf eine Spalte in einer Tabelle beziehen und das FROM-Schlüsselwort nicht verwenden.

Haben Sie bereits versucht, einen anderen Variablennamen oder einen Aliasnamen zu verwenden?

+0

Das Ändern des Spaltennamens löste das Problem http://stackoverflow.com/questions/1992019/how-can-irename-a-database-column-in-a-ruby-on-rails-migration –