Чтобы извлечь первый день недели (понедельник) для любой даты в PostgreSQL, вы можете использовать функцию DATE_TRUNC(). Функция DATE_TRUNC() используется для усечения даты или временной метки до заданного уровня точности. Она позволяет округлить дату или временную метку до определенной единицы измерения, такой как год, квартал, месяц, неделя, день, час и т. д. В нашем случае мы получим первый день недели для любой заданной даты. Также мы заполним первый день недели, основываясь на столбце даты в таблице PostgreSQL.
Синтаксис функции DATE_TRUNC() в PostgreSQL:
DATE_TRUNC(unit、source)
unit:
Указывает единицу, до которой нужно усечь дату или временную метку (например, ‘год’, ‘квартал’, ‘месяц’, ‘неделя’, ‘день’, ‘час’ и т. д.).
source:
Дата или временная метка, которую вы хотите усечь.
В нашем случае. Значением единицы измерения должно быть “неделя”.
Извлечение или получение первого дня недели (начала недели) из даты в PostgreSQL – функция DATE_TRUNC() :
Для того чтобы получить первый день недели из даты (понедельник) в PostgreSQL, мы будем использовать функцию DATE_TRUNC().
В приведенном ниже примере мы передадим week в качестве аргумента “единица” и date в качестве аргумента “источник”, чтобы извлечь первый день недели из даты или datetime
SELECT DATE_TRUNC('week', '2024-02-24 15:30:45'::timestamp) AS First_day_of_Week;
Результат:

Заполнение первого дня недели (начало недели) из столбца Date в таблице PostgreSQL с помощью метода 1 DATE_TRUNC()
Для примера мы будем использовать таблицу Student_detail, чтобы показать, как заполнить первый день недели (понедельник) из даты в PostgreSQL.
Student_detail:

В таблице выше мы будем использовать функцию DATE_TRUNC(), которая в качестве аргумента принимает значение “week” и столбец с именем “birthdaytime”. Она извлечет первый день недели на основе столбца “время рождения” и сохранит его в новом столбце таблицы PostgreSQL, как показано ниже
SELECT *, DATE_TRUNC('week', birthdaytime::timestamp) AS First_day_of_week from Student_detail;
Таким образом, в результирующей таблице будет столбец First_day_of_week.
Результат:
