Postgres, где предложение сравнивает временную метку

У меня есть таблица, где столбец имеет тип данных timestamp

Что содержит записи нескольких записей за день Я хочу выбрать все строки, соответствующие дню

Как мне это сделать?

Ответы

Ответ 1

Предполагая, что вы на самом деле означаете timestamp, потому что в Postgres

нет datetime

Отметьте столбец временной метки на дату, которая удалит временную часть:

select *
from the_table
where the_timestamp_column::date = date '2015-07-15';

Это вернет все строки с 15 июля.

Обратите внимание, что приведенное выше значение не использует индекс на the_timestamp_column. Если производительность критическая, вам нужно либо создать индекс для этого выражения, либо использовать условие диапазона:

select *
from the_table
where the_timestamp_column >= timestamp '2015-07-15 00:00:00'
  and the_timestamp_column < timestamp '2015-07-16 00:00:00';