@Nicolai ha ragione sul casting e sul motivo per cui la condizione è falsa per tutti i dati. immagino che tu preferisca il primo modulo perché vuoi evitare la manipolazione della data sulla stringa di input, corretto? non devi aver paura:
SELECT *
FROM table
WHERE update_date >= '2013-05-03'::date
AND update_date < ('2013-05-03'::date + '1 day'::interval);