Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Converter de data para época-Oracle


Subtraindo DATE '1970-01-01' do valor dará o número de dias (e frações de horas/minutos/segundos) de diferença e então você pode multiplicar por 24*60*60 :
(date_value - DATE '1970-01-01')*24*60*60

Atualizar :

Normalmente, o tempo de época é medido a partir de 1970-01-01T00:00:00 UTC . Se sua data não estiver em UTC, você precisará converter os fusos horários.

Por exemplo, se sua data tiver o fuso horário Europe/Berlin :
( CAST(
    FROM_TZ(
      CAST( date_value AS TIMESTAMP ),     -- Cast to timestamp
      'Europe/Berlin'                      -- Convert to expected Time Zone
    )
    AT TIME ZONE 'UTC'                     -- Convert Time Zone to UTC
    AS DATE                                -- Cast back to DATE data type
  )
  - DATE '1970-01-01'
)*24*60*60

db<>violino