В PostgreSQL доступно несколько функций даты / времени, см. здесь .
В вашем примере вы можете использовать:
SELECT * FROM myTable WHERE date_trunc('day', dt) = 'YYYY-MM-DD';
Если выэтот запрос выполняется регулярно, также можно создать индекс с помощью функции date_trunc
:
CREATE INDEX date_trunc_dt_idx ON myTable ( date_trunc('day', dt) );
Одним из преимуществ этого является то, что при необходимости есть больше гибкости с часовыми поясами, например:
CREATE INDEX date_trunc_dt_idx ON myTable ( date_trunc('day', dt at time zone 'Australia/Sydney') );
SELECT * FROM myTable WHERE date_trunc('day', dt at time zone 'Australia/Sydney') = 'YYYY-MM-DD';