Вы говорите, что не хотите ничего менять, но вы уже перенесли это с SQL Server на Oracle ... СЕЙЧАС настало время это исправить, или вы будете ненавидеть жизнь за все времяподдержка этого приложения / базы данных в будущем.
Вам нужны только два столбца для ваших данных
DROP TABLE BACKUP_EXT;
CREATE TABLE BACKUP_EXT (
USERNAME VARCHAR2(20),
OCCURENCE DATE
);
INSERT INTO BACKUP_EXT VALUES (
'john',
TO_DATE('28-MAY-18 10.17.57', 'DD-MON-RR HH.MI.SS')
);
COMMIT;
SELECT USERNAME "user",
TO_CHAR(OCCURENCE, 'DD-MON-RR') "date",
TO_CHAR(OCCURENCE, 'HH.MI.SS') "hour"
FROM BACKUP_EXT;
Выполните это ... и мы вернемся ...
Table BACKUP_EXT dropped.
Table BACKUP_EXT created.
1 row inserted.
Commit complete.
user date hour
john 28-MAY-18 10.17.57
Используйте правильный тип данных -> ДАТА. DATE содержит момент времени, поэтому он включает в себя часть времени, а не только месяц, день, год.
Не используйте NVARCHAR2 - большинство современных баз данных Oracle используют уже набор символов на основе Unicode, поэтому это не нужно,особенно для предоставленных вами тестовых данных.
Не используйте зарезервированные слова, такие как DATE или USER, для имен таблиц или столбцов - это вызовет гораздо больше проблем, чем решит их путем кавычек.