W PostgreSQL wyrażenie extract(day from time_from) zwraca liczbę typu double, reprezentującą dzień miesiąca. sobota wyraźnie nie jest prawidłowym dublerem.
Jeśli potrzebujesz argumentu do where() aby dopasować ciąg „Saturday” (aby dopasować dzień tygodnia), a następnie użyj to_char() funkcja.
user_calendars.where("trim(to_char(time_from, 'Day')) = ? ", next_day)
Potrzebujesz trim() , ponieważ tego rodzaju wywołanie to_char() jest uzupełniony do 9 znaków.
Wielkość liter ma znaczenie dla argumentu „Dzień”. Jeśli wpiszesz „dzień”, zwrócona wartość nie będzie pasować do „sobota”. Zamiast tego wyrażenie takie jak to_char(time_from, 'day') zwróci coś takiego jak „sobota”.