#sql #oracle #sql-update
#sql #Oracle #sql-обновление
Вопрос:
У меня есть пример таблицы ниже
ENABLED FILE_NAME SCHEDULED_DATE
1 TEST_20201101.CSV 01-NOV-20 11.00.00 PM
1 TEST_20201102.CSV 02-NOV-20 11.00.00 PM
1 TEST_20201103.CSV 03-NOV-20 11.00.00 PM
1 TEST_20201104.CSV 04-NOV-20 11.00.00 PM
1 TEST_20201105.CSV 05-NOV-20 11.00.00 PM
1 TEST_20201106.CSV 06-NOV-20 11.00.00 PM
..
..
..data till Nov30.
Я хочу обновить включенный столбец до 0 для всех дней, когда это суббота / воскресенье.
Пробовал использовать extract (), но он возвращает номер дня для даты, например: извлечение 2020-27 ноября вернет 27
Ответ №1:
Вы можете использовать to_char()
:
update t
set enabled = 1
where to_char(scheduled_date, 'Dy') in ('Sun', 'Sat');
Ответ №2:
Приведенный ниже запрос может помочь вам получить конкретный день из времени
select to_char(SHCEDULED_DATE,'Day') from date_stack
Ниже приведено обновление
update date_stack set enabled='0' where SHCEDULED_DATE in (select SHCEDULED_DATE from date_stack where trim(to_char(SHCEDULED_DATE,'Day'))='Saturday' or trim(to_char(SHCEDULED_DATE,'Day'))='Sunday' )