Oracle SQL: добавление часов к дате - PullRequest
0 голосов
/ 05 октября 2018

Начиная с даты / времени 20 июля 2001 г. 10:40:12, отобразите следующую таблицу результатов.Используйте Двойной стол.

  • отнимите 2 дня
    Результат: 18-июл-01 10: 40: 12

  • добавить половинудень
    Результат: 20-июл-01 22: 40: 12

  • добавить 4 с половиной часа
    Результат: 20-июл-01 15: 10: 12

1 Ответ

0 голосов
/ 05 октября 2018

Предполагая, что вы используете базу данных Oracle (основываясь на упоминании подсказки о двойной таблице), вы можете сделать что-то вроде этого:

select to_char(to_date('2001-07-20 10:40:12', 'YYYY-MM-DD HH:MI:SS') - 2, 'DD-MON-YY HH:MI:SS') from dual;
select to_char(to_date('2001-07-20 10:40:12', 'YYYY-MM-DD HH:MI:SS') + 1/2, 'DD-MON-YY HH:MI:SS') from dual;
select to_char(to_date('2001-07-20 10:40:12', 'YYYY-MM-DD HH:MI:SS') + 4.5/24, 'DD-MON-YY HH:MI:SS') from dual;

В этом решении используется тот факт, что добавление дроби кдата фактически добавит соответствующую часть дня к этой дате.Остальная часть кода касается преобразования в различные форматы даты и обратно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...