powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как определить номер недели, начиная с января года?
3 сообщений из 3, страница 1 из 1
Как определить номер недели, начиная с января года?
    #40032690
Kpekepp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста, не могу найти информацию, как создать номер недели в PG, начиная с января года.
Например, 1-3 января 2021 это 1 неделя, с 4 января - вторая и так далее.

Я пробовал to_char( DATE, 'WW' ) as INTEGER) WEEK_NUMBER , но оно возращает первую неделю с 1 по 7 января.
...
Рейтинг: 0 / 0
Как определить номер недели, начиная с января года?
    #40032707
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Считайте недели стандартно по ISO 8601.

Ну а если хотите какую-то свою нумерацию - то кто же её будет реализовывать за вас?
...
Рейтинг: 0 / 0
Как определить номер недели, начиная с января года?
    #40033299
Lonepsycho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kpekepp,

если уж очень надо...
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
CREATE FUNCTION public.my_weeknum(p_date DATE)
RETURNS INTEGER
AS $body$
SELECT 
  CAST(
    CASE 
      WHEN 
        EXTRACT(day FROM p_date) <= 7 AND
        EXTRACT('week' FROM p_date) > 2
      THEN 1
      WHEN EXTRACT(ISODOW FROM date_trunc('year', p_date)) = 1
      THEN EXTRACT('week' FROM p_date)
      ELSE EXTRACT('week' FROM p_date) + 1
    END AS INTEGER) AS weeknum
$body$
LANGUAGE 'sql'
IMMUTABLE
RETURNS NULL ON NULL INPUT;

SELECT my_weeknum('2021-01-04'::DATE);

...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как определить номер недели, начиная с января года?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]