Discard millisecond part from timestamp

Dipro Sen picture Dipro Sen · Apr 18, 2012 · Viewed 57.8k times · Source

How can I discard/round the millisecond part, better if the second part is also removed from a timestamp w/o timezone ?

Answer

Erwin Brandstetter picture Erwin Brandstetter · Apr 18, 2012

A cast to timestamp(0) or timestamptz(0) rounds to full seconds:

SELECT now()::timestamp(0);

Fractions are not stored in table columns of this type.

date_trunc() truncates (leaves seconds unchanged) - which is often what you really want:

SELECT date_trunc('second', now()::timestamp);