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