@Nicolai ma rację, jeśli chodzi o przesyłanie i dlaczego warunek jest fałszywy dla dowolnych danych. chyba wolisz pierwszą formę, ponieważ chcesz uniknąć manipulacji datą w ciągu wejściowym, prawda? nie musisz się bać:
SELECT *
FROM table
WHERE update_date >= '2013-05-03'::date
AND update_date < ('2013-05-03'::date + '1 day'::interval);