PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

rails postgres ERRORE:sintassi di input non valida per il tipo double precision

In PostgreSQL, l'espressione extract(day from time_from) restituisce un numero di tipo double, che rappresenta il giorno del mese. Sabato chiaramente non è un doppio valido.

Se hai bisogno dell'argomento per where() per abbinare la stringa 'Saturday' (per abbinare il giorno della settimana), quindi utilizzare to_char() funzione.

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

Hai bisogno di trim() , perché questo tipo di chiamata a to_char() è riempito a 9 caratteri.

Il caso è significativo per l'argomento "Giorno". Se lo digiti come "giorno", il valore restituito non corrisponderà a "sabato". Invece, un'espressione come to_char(time_from, 'day') restituirà qualcosa come 'sabato'.