Discard millisecond part from timestamp

casting, postgresql, rounding, sql, timestamp

Solution

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

Problem

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

Original source