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

Разница между двумя datetime (timestamp) в минутах PostgreSQL с помощью простой разницы:

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

Пример 1:

SELECT round(abs('2024-04-01 09:12:00' :: date - '2020-04-14 09:12:00' :: date)*(1440),2) as minutes_diff;

Результат:

Разница между двумя столбцами datetime (timestamp) в минутах PostgreSQL :

Метод 1

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

Student_detail2:

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

select *,round(abs(birthdaytime :: date - examdatetime :: date)*(24*60),2) as minutes_diff from student_detail2;

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

Результат:

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

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

Пример 1:

SELECT COALESCE(round(abs((EXTRACT(epoch from age('2024-04-01 09:12:00', '2020-04-14 09:12:00'))/60 )::INT),2)::int + DATE_PART('month', age('2024-04-01 09:12:00', '2020-04-14 09:12:00'))::int*0.474545 *24*60) as minutes_diff

Результат:

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

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

Student_detail2:

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

SELECT *,COALESCE(round(abs((EXTRACT(epoch from age(examdatetime::date, birthdaytime::date)) / 60)::INT),2)::int + DATE_PART('month', age(examdatetime::date, birthdaytime::date))::int*0.474545*24*60) as minutes_diff  from student_detail2;

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

Результат: