Тип данных TIMESTAMP является расширением типа данных DATE . Здесь хранятся значения года, месяца, дня, часа, минуты и секунды. Он также хранит дробных секунд , которые не сохраняются типом данных DATE.
Так что, если вы не хотите отображать дробные секунды, используйте маску правильного формата с помощью TO_CHAR для отображения что вы хотите.
Вот рабочая демонстрация:
with your_table as
(
select timestamp '2020-10-01 22:15:00' time_of_Day , 3 hrs from dual
union all
select timestamp '2020-11-01 15:04:00', 4 from dual
)
select time_of_day,
to_char(time_of_day + interval '1' hour * hrs, 'YYYY-MM-DD HH24:MI:SS') new_time
from your_table;
TIME_OF_DAY NEW_TIME
------------------------------ -------------------
01-10-20 10:15:00.000000000 PM 2020-10-02 01:15:00
01-11-20 3:04:00.000000000 PM 2020-11-01 19:04:00
В метке времени все еще будут храниться дробные секунды как 02-10-20 1:15:00.000000000 AM
.