sql >> Base de Datos >  >> RDS >> PostgreSQL

Rails postgres ERROR:sintaxis de entrada no válida para el tipo de doble precisión

En PostgreSQL, la expresión extract(day from time_from) devuelve un número de tipo doble, que representa el día del mes. sábado claramente no es un doble válido.

Si necesita el argumento para where() para que coincida con la cadena 'Sábado' (para que coincida con el día de la semana), luego use to_char() función.

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

Necesitas trim() , porque este tipo de llamada a to_char() se rellena con 9 caracteres.

El caso es significativo para el argumento 'Día'. Si lo ingresa como 'día', el valor devuelto no coincidirá con 'Sábado'. En su lugar, una expresión como to_char(time_from, 'day') devolverá algo como 'sábado'.