By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE tableA ( class_time ) AS
SELECT DATE '2019-12-16' + INTERVAL '02:00' HOUR TO MINUTE FROM DUAL UNION ALL
SELECT DATE '2019-12-16' + INTERVAL '02:30' HOUR TO MINUTE FROM DUAL UNION ALL
SELECT DATE '2019-12-16' + INTERVAL '03:00' HOUR TO MINUTE FROM DUAL UNION ALL
SELECT DATE '2019-12-16' + INTERVAL '03:30' HOUR TO MINUTE FROM DUAL UNION ALL
SELECT DATE '2019-12-16' + INTERVAL '04:00' HOUR TO MINUTE FROM DUAL
5 rows affected
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
SELECT class_time from tableA
UNION ALL
SELECT MAX( class_time ) + INTERVAL '30' MINUTE FROM tableA
CLASS_TIME |
---|
2019-12-16 02:00:00 |
2019-12-16 02:30:00 |
2019-12-16 03:00:00 |
2019-12-16 03:30:00 |
2019-12-16 04:00:00 |
2019-12-16 04:30:00 |
SELECT class_time from tableA
UNION ALL
SELECT MAX( class_time ) + 30 / ( 24 /* hours */ * 60 /* minutes */ ) FROM tableA
CLASS_TIME |
---|
2019-12-16 02:00:00 |
2019-12-16 02:30:00 |
2019-12-16 03:00:00 |
2019-12-16 03:30:00 |
2019-12-16 04:00:00 |
2019-12-16 04:30:00 |
CREATE TABLE tableB ( class_time ) AS
SELECT '02:00 AM' FROM DUAL UNION ALL
SELECT '02:30 AM' FROM DUAL UNION ALL
SELECT '03:00 AM' FROM DUAL UNION ALL
SELECT '03:30 AM' FROM DUAL UNION ALL
SELECT '04:00 AM' FROM DUAL;
5 rows affected
SELECT class_time from tableB
UNION ALL
SELECT TO_CHAR(
MAX( TO_DATE( class_time, 'HH12:MI AM' ) )
+ INTERVAL '30' MINUTE,
'HH12:MI AM'
)
FROM tableB
CLASS_TIME |
---|
02:00 AM |
02:30 AM |
03:00 AM |
03:30 AM |
04:00 AM |
04:30 AM |