Postregsql Дата Разница по секундам

Как я могу найти разницу дат между двумя датами в секундах в postgresql. В postgres нет функции для определения даты в секундах, например, в SQL-Server:

DATE_DIFF(second, '2011-12-30 09:55:56', '2011-12-30 08:54:55')

Пожалуйста, помогите мне это тоже в postgres

Спасибо в Adv

Ответы

Ответ 1

Во-первых, даты должны быть значениями типа timestamp (поэтому append ::timestamp, если вы просто указываете их как строковые литералы).

Если вы вычитаете две метки времени, результат имеет тип interval, который описывает продолжительность времени (в часах, минутах, секундах и т.д.). Вы можете использовать extract(epoch from interval_value) для преобразования интервала в абсолютное число секунд.

Итак, все вместе:

select extract(epoch from ('2011-12-30 09:55:56'::timestamp - '2011-12-30 08:54:55'::timestamp));

Помните, что ::timestamp требуется только для преобразования строкового литерала в метку времени: вам это не нужно, если вы используете значение столбца временной метки, например.