Il timestamp Unix è in secondi da 1970-01-01 00:00:00 UTC
che in realtà è 1970-01-01 01:00:00
nel tuo fuso orario locale (o nel fuso orario in cui si trova il tuo server MySQL). Sembra FROM_UNIXTIME
ne tiene conto.
Per Oracle puoi usare questa funzione:
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;
Presumo che se ti piace ottenere l'ora UTC in MySQL, devi eseguire
select
CONVERT_TZ(FROM_UNIXTIME(1387444958),'{your local timezone}','UTC')
from dual;