PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Rails postgres ERRO:sintaxe de entrada inválida para o tipo de precisão dupla


No PostgreSQL, a expressão extract(day from time_from) retorna um número do tipo double, representando o dia do mês. Sábado claramente não é um duplo válido.

Se você precisar do argumento para where() para corresponder à string 'Saturday' (para corresponder ao dia da semana), então use o to_char() função.
user_calendars.where("trim(to_char(time_from, 'Day')) = ? ", next_day)

Você precisa de trim() , porque esse tipo de chamada para to_char() é preenchido com 9 caracteres.

O caso é significativo para o argumento 'Dia'. Se você digitar como 'dia', o valor retornado não corresponderá a 'sábado'. Em vez disso, uma expressão como to_char(time_from, 'day') retornará algo como 'sábado'.