Discard millisecond part from timestamp
Solution 1:
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);
Solution 2:
Discard milliseconds:
SELECT DATE_TRUNC('second', CURRENT_TIMESTAMP::timestamp);
2019-08-23 16:42:43
Discard seconds:
SELECT DATE_TRUNC('minute', CURRENT_TIMESTAMP::timestamp);
2019-08-23 16:42:00