O carimbo de data/hora do Unix é segundos a partir de
1970-01-01 00:00:00 UTC
que na verdade é 1970-01-01 01:00:00
em seu fuso horário local (ou o fuso horário onde seu servidor MySQL está localizado). Parece FROM_UNIXTIME
leva isso em consideração. Para Oracle você pode usar esta função:
FUNCTION UnixTime2Timestamp(UnixTime IN NUMBER) RETURN TIMESTAMP IS
BEGIN
RETURN (TIMESTAMP '1970-01-01 00:00:00 UTC' + UnixTime * INTERVAL '1' SECOND) AT LOCAL;
END UnixTime2Timestamp;
Eu suponho que se você gosta de obter a hora UTC no MySQL, então você deve executar
select
CONVERT_TZ(FROM_UNIXTIME(1387444958),'{your local timezone}','UTC')
from dual;