В настоящее время я работаю над проектом, который ведет себя по-разному в зависимости от того, является ли он государственным праздником или нет (среди прочих ограничений, очевидно). С этой целью я пытаюсь создать таблицу, которая содержит дату и день недели (учитывая, что «выходной» - восьмой «день недели»).
У меня есть таблица, из которой я получаю список выходных, с именем holiday
, в котором есть только одно поле, holidaydate
(DATE
тип данных). Таблица, в которую я пытаюсь поместить значения, называется daydates
, с двумя полями: day
(DATE
тип данных) и dayofweek
(CHAR(10)
тип данных).
Это логика, которая у меня есть на данный момент, пока я тестирую.
INSERT INTO holiday
(holidaydate)
SELECT sysdate FROM dual;
SELECT sysdate,
(
CASE
WHEN sysdate IN
(SELECT h.holidaydate FROM holiday h)
THEN 'holiday'
ELSE TO_CHAR(sysdate , 'day')
END)
FROM dual;
К сожалению, в настоящее время он возвращает, скажем, «среду», а не «праздник». У меня такое чувство, что мне нужно изменить WHEN sysdate IN
на WHEN to_char (sysdate, 'dd-mon-yyyy') IN
или что-то в этом роде, но я попробовал несколько вариантов, и они, похоже, пока не работают.
Есть предложения?