PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

rails postgres FEHLER:ungültige Eingabesyntax für Typ mit doppelter Genauigkeit

In PostgreSQL der Ausdruck extract(day from time_from) gibt eine Zahl vom Typ Double zurück, die den Tag des Monats darstellt. Samstag ist eindeutig kein gültiges Double.

Wenn Sie das Argument für where() benötigen um die Zeichenfolge 'Samstag' abzugleichen (um den Wochentag abzugleichen), verwenden Sie dann to_char() Funktion.

user_calendars.where("trim(to_char(time_from, 'Day')) = ? ", next_day)

Sie benötigen trim() , weil diese Art von Aufruf von to_char() wird auf 9 Zeichen aufgefüllt.

Groß-/Kleinschreibung ist für das Argument 'Tag' von Bedeutung. Wenn Sie „Tag“ eingeben, stimmt der zurückgegebene Wert nicht mit „Samstag“ überein. Stattdessen ein Ausdruck wie to_char(time_from, 'day') wird so etwas wie 'samstag' zurückgeben.