Для того чтобы получить разницу между двумя датами или datetime(timestamp) в годах в PostgreSQL, мы будем использовать простой символ разности (вычитания). Окольным путем для нахождения разницы между двумя датами в годах в PostgreSQL мы также можем использовать функцию age() с эпохой. Давайте посмотрим на примере всех этих двух подходов. Мы также рассмотрим пример, как получить разницу между двумя датами или столбцом datetime(timestamp) в таблице years PostgreSQL.

Разница между двумя датами в таблице years PostgreSQL с помощью простой разницы:

Символ Simple Difference используется для вычисления разницы между двумя датами в годах, как показано ниже.

Пример 1:

SELECT round(abs((EXTRACT(epoch from age('2024-01-14', '2020-04-01')) / 86400)::INT)/365.25,2) as year_diff

Результат

Разница между двумя датами в годах PostgreSQL с помощью функции AGE():

В функции AGE() мы передаем две даты, по которым нужно вычислить разницу в датах, а также делим полученные результаты на 365.25, что позволяет вычислить разницу между двумя датами в годах в PostgreSQL.

Пример 1:

SELECT round(abs('2024-01-14' :: date - '2020-04-01' :: date)/(365.25),2) as year_diff;

Результат

Разница между двумя столбцами даты в годах PostgreSQL :

Метод 1

Мы будем использовать таблицу Student_detail2 в качестве примера, чтобы показать, как найти разницу между двумя столбцами даты в годах в PostgreSQL.

Student_detail2:

Для вычисления разницы между двумя столбцами даты в таблице PostgreSQL в годах используется простой символ Difference, как показано ниже.

select *,round(abs(birthdaytime :: date - examdatetime :: date)/(365.25),2) as year_diff from student_detail2;

Мы привели два столбца даты к дате, а затем нашли разницу и преобразовали ее в годы, поэтому она будет округлена

Результат

Разница между двумя столбцами даты в годах PostgreSQL с помощью EXTRACT() :

Мы будем использовать таблицу Student_detail2 для нашего примера, чтобы показать, как найти разницу между двумя столбцами даты в годах в PostgreSQL.

Student_detail2:

В функции EXTRACT() мы передадим два столбца дат, для которых необходимо вычислить разницу в датах. Для этого используется функция EPOCH вместе с функцией Age(), которая вычислит разницу между двумя столбцами дат в годах в PostgreSQL.

SELECT *, round(ABS((EXTRACT(epoch from age(examdatetime::date, birthdaytime::date))/ 86400)::INT)/365.25,2) AS year_diff from student_detail2;

Мы вычислили разницу столбцов в годах, поэтому результирующая таблица будет выглядеть так.

Результат: