Тип
tymestamp
по умолчанию содержит также микросекунды, поэтому now()
, который, например, равен 2020-03-11 01:56:27.593985
, здесь явно не равен 2020-03-11 01:56:27
. Если вы не хотите, чтобы ваши данные имели микросекундную точность, объявите ваше поле как ts timestamp(0) NOT NULL DEFAULT now()
, что означает «0 десятичных цифр для микросекунд»:
select
current_timestamp::timestamp as ts,
current_timestamp::timestamp(2) as ts2,
current_timestamp::timestamp(0) as ts0;
ts | ts2 | ts0
---------------------------+------------------------+---------------------
2020-03-11 02:02:52.98298 | 2020-03-11 02:02:52.98 | 2020-03-11 02:02:53