Ваша самая большая проблема заключается в том, что вы храните даты и время в виде строк (или чисел), а не в виде дат. Вы должны исправить это в таблице (если можете).
ALTER TABLE pharmacy_employee_master ADD ( entry_datetime DATE );
UPDATE pharmacy_employee_master
SET entry_datetime = TO_DATE( entry_date, 'J' )
+ ( TO_DATE( LPAD( entry_time, 6, '0' ), 'hh24miss' )
- TO_DATE( '00:00:00', 'hh24:mi:ss' ) );
(Затем вы отбрасываете столбцы entry_date
и entry_time
, и вам не нужно беспокоиться о пропущенном ведении обнуляет и может просто отформатировать дату и время так, как вам нужно. 1014 * TO_CHAR(
TO_DATE( LPAD( entry_time, 6, '0' ), 'hh24miss' ),
'hh24:mi:ss'
)
(Примечание: вы также хотите hh24
вместо hh
, что является просто 12-часовыми часами; или, если вы действительно хотите 12-часовые часы, то вы, вероятно, также хотите индикатор меридиана 'hh12:mi:ss am'
)