извлечение дня из столбца даты метки времени в oracle-sql

#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' )
 

введите описание изображения здесь