Для того чтобы получить разницу между двумя датами или datetime(timestamp) в днях в PostgreSQL, мы будем использовать простой символ разности (вычитание). Окольным путем для нахождения разницы между двумя датами в PostgreSQL можно также использовать функцию extract(). Давайте посмотрим на примере всех этих двух подходов. Мы также рассмотрим пример, как получить разницу между двумя датами или столбцом datetime(timestamp) в таблице days PostgreSQL.
Разница между двумя датами в днях PostgreSQL с помощью простой разницы:
Символ Simple Difference используется для вычисления разницы между двумя датами в днях, как показано ниже.
Пример 1:
SELECT '2024-02-28'::date - '2024-02-24'::date AS date_difference_in_days
Результат:

Разница между двумя датами в днях PostgreSQL с помощью функции EXTRACT() :
В функции EXTRACT() мы передаем две даты, по которым нужно вычислить разницу в датах, в качестве аргумента она также принимает DAY, который вычислит разницу между двумя датами в днях в PostgreSQL.
Пример 1:
SELECT EXTRACT(DAY FROM '2024-02-28 15:30:00'::timestamp - '2024-02-24 10:45:00'::timestamp) AS date_difference_in_days;
Результат:

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

Для вычисления разницы между двумя столбцами даты в таблице PostgreSQL в днях используется символ Simple Difference, как показано ниже.
SELECT *, examdatetime::date - birthdaytime::date As date_diff_in_days from Student_detail2
Мы привели два столбца даты к дате, а затем нашли разницу, поэтому она будет округлена.
Результат:

Метод 2
Чтобы найти разницу между двумя столбцами даты в датах и часах, мы использовали следующий метод
SELECT *, examdatetime::timestamp - birthdaytime::timestamp As date_diff_in_days from Student_detail2
Мы привели два столбца данных к временной метке, а затем нашли разницу, поэтому результирующий столбец для нахождения разницы дат в днях будет содержать количество дней, а затем разницу в часах, как показано ниже
Результат:

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

В функции EXTRACT() мы передадим два столбца дат, для которых нужно вычислить разницу в датах. В качестве аргумента она также принимает DAY, который вычислит разницу между двумя столбцами дат в днях в PostgreSQL.
SELECT *,EXTRACT(DAY FROM examdatetime::timestamp - birthdaytime::timestamp) AS date_diff_in_days from Student_detail2;
Мы привели два столбца даты к временной метке, а затем нашли разницу, поэтому в результате получим таблицу.
Результат:
