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'.