SQL Функция выбора первого дня текущего года и каждый день после - PullRequest
0 голосов
/ 29 января 2020

Я хочу получить быстрый и эффективный код, чтобы получить первый день текущего года и каждый день после него, а также номера их недель. Пока у меня есть что-то вроде этого, чтобы начать меня:

SELECT 
to_char(TRUNC(SysDate,'YEAR'), 'WW')Week_No,
to_char(TRUNC(SysDate,'YEAR'), 'DD/MM/YY')First_Day

FROM dual;

, который дает мне номер недели и первый день текущего года. У меня также есть это, чтобы получить мне последний календарный день текущего года:

SELECT ADD_MONTHS(trunc(sysdate,'YEAR'),12)-1 from dual;

Я очень глуп, или, может быть, это конец дня, мозговой мю sh, но я пытаюсь получить немного сейчас посередине. Суть в том, чтобы получить список каждого календарного дня и номера недели.

Если кто-нибудь может направить меня сюда, я буду признателен за это.

Спасибо

1 Ответ

1 голос
/ 29 января 2020

Вы ищете что-то вроде этого:

SELECT
    ST_DT + LEVEL - 1,
    TO_CHAR(ST_DT + LEVEL - 1, 'IW') AS DY
FROM
    (
        SELECT
            TRUNC(SYSDATE, 'YEAR') ST_DT,
            TRUNC(SYSDATE, 'YEAR') + INTERVAL '12' MONTH - INTERVAL '1' DAY END_DT
        FROM DUAL
    )
CONNECT BY LEVEL <= END_DT - ST_DT
ORDER BY LEVEL

Ура !!

...