В PostgreSQL можете да използвате extract()
функция за получаване на номера на седмицата от дата.
Можете също да използвате date_part()
функция, за да направи същото.
Пример 1:Функцията extract()
Ето пример за използване на extract()
функция за извличане на седмицата от дата.
ИЗБЕРЕТЕ извадка(седмица от дата '2020-12-27') КАТО "Номер на седмицата";
Резултат:
Номер на седмицата ------------- 52
Пример 2:Функцията date_part()
Ето как да направите същото с помощта на date_part()
функция.
SELECT date_part('week', date '2020-12-27') КАТО "Номер на седмицата";
Резултат:
Номер на седмицата ------------- 52
Пример 3:Относно ISO системата за номериране на седмици
Ако получите резултати, които не сте очаквали, това може да се дължи на начина, по който се дефинира ISO седмичното номериране.
ISO седмиците започват в понеделник и първата седмица на годината съдържа 4 януари на същата година. Следователно е възможно датите от началото на януари да са част от 52-ата или 53-та седмица на предходната година, а датите от края на декември да са част от първата седмица на следващата година.
Пример:
ИЗБЕРЕТЕ извлечение(седмица от дата '2021-01-03') AS "2021-01-03", извлечение(седмица от дата '2021-01-04') AS "2021-01-04";предварително>Резултат:
2021-01-03 | 04.01.2021 г. ------------+----------- 53 | 1В този случай 3 януари 2021 г. всъщност все още е част от последната седмица на 2020 г. Първата седмица на 2021 г. започва едва на 4 януари.
По-долу е друг пример, който показва дата в края на годината, която е част от първата седмица на следващата година.
ИЗБЕРЕТЕ извадка(седмица от дата '2024-12-29') AS "2024-12-29", извлечение(седмица от дата '2024-12-30') AS "2024-12-30";предварително>Резултат:
29.12.2024 | 2024-12-30 ------------+----------- 52 | 1В този случай 29 декември 2024 г. е част от последната седмица на 2024 г., но веднага щом стигнем до 30 декември, сме в първата седмица на 2025 г.