Получить первый и последний календарный день года - PullRequest
2 голосов
/ 18 марта 2020

Я ищу способ получить первый и последний календарный день на французском языке для данного года на Oracle.

Например, первый календарный день 2020 года - 30/12 / 2019 (потому что это понедельник недели 1 2020 года) и последний календарный день - 01/01/2021 (потому что это воскресенье недели 53 2020 года).

У меня есть множество решений для 01 / 01/2020 и 31/12/2020, но не для календаря первого и последнего дня.

Я попытался с to_date с select trunc(to_date('1 2020','IW YYYY'), 'YEAR') from dual;, но получил код ошибки ORA-01820. с select to_date('1 2020','DDD YYYY') from dual; я получил 01/01/20 00: 00: 00

Спасибо за помощь.

1 Ответ

3 голосов
/ 18 марта 2020

Вы можете сделать:

select 
    trunc(date'2020-01-01', 'IW') first_calendar_day_2020, 
    trunc(date'2020-12-31', 'IW') + 6 last_calendar_day_2020
from dual

IW дает вам первый день недели ISO для соответствующей даты. Если вы хотите воскресенье этой недели, вы можете просто добавить 6 дней.

Демонстрация на DB Fiddle :

FIRST_CALENDAR_DAY_2020 | LAST_CALENDAR_DAY_2020
:---------------------- | :---------------------
30-DEC-19               | 03-JAN-21             
...