Postgres waar clausule tijdstempel vergelijkt

Ik heb een tabel met een kolom van het gegevenstype timestamp

Die records meerdere records voor een dag bevat
Ik wil alle rijen selecteren die overeenkomen met dag

Hoe doe ik dat?


Antwoord 1, autoriteit 100%

Ervan uitgaande dat je eigenlijk timestampbedoelt omdat er geen datetimein Postgres

staat

Creëer de tijdstempelkolom naar een datum, waardoor het tijdgedeelte wordt verwijderd:

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

Hiermee worden alle rijen vanaf 15 juli geretourneerd.

Houd er rekening mee dat het bovenstaande geeneen index zal gebruiken op the_timestamp_column. Als prestaties van cruciaal belang zijn, moet u ofwel een index voor die uitdrukking maken of een bereikvoorwaarde gebruiken:

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';

Other episodes