Я думаю, что case
может быть самым простым решением:
select (case dow when '1' then 'Monday' when '2' then 'Tuesday' when '3' then 'Wednesday'
when '4' then 'Thursday' when '5' then 'Friday' when '6' then 'Saturday'
when '7' then 'Sunday'
end)
Это может быть не так уж и сложно, как преобразование в даты, но вы можете получить именно ту строку, которая вам нужна, без суеты с датойарифметика.
Если вы хотите использовать арифметику даты, используйте trunc()
:
select to_char(trunc(sysdate, 'IW') + dow - 1, 'Dy')
Примечание: здесь создаются сокращения дня.Используйте 'Day'
, если хотите указать полное название дня недели.
Усекает текущую дату до начала недели ISO, которая начинается в понедельник.