Я пытался вычесть интервал из отметки времени, но я получил неправильный результат по сравнению с днями, вычитая 2 даты.
например:.
select
(now::date - past::date) as days,
(now::date - past::date) / 365.25 as years,
justify_interval(now - past::date) as interval_test
from (
select '2020-09-17 00:00:01'::timestamp as now, '2010-09-17 00:00:01'::timestamp as past
) b;
дает результаты:
- 3653 дней
- 10,0013 лет
- '10 лет 1 мес 23 дня 'интервальный тест
Может ли кто-нибудь помочь мне понять, что не так с вычитанием?
Когда я делаю это наоборот, все нормально:
select
(past::date + 3653)::date,
(past + interval '10 years')::date,
(past + 10*interval '1 year')::date,
(past + 10*12*interval '1 month')::date
from (
select '2020-09-17 00:00:01'::timestamp as now, '2010-09-17 00:00:01'::timestamp as past
) b;
все результаты дают одинаковую дату '2020-09-17'
Что я делаю не так?
Я использую PostgreSQL 10.5.