Oracle timestamp to unix timestamp konvertieren

tplanitz

Erfahrenes Mitglied
Hallo,

hatte die Aufgabe einen oracle timestamp attribut in unix timestamp umzuwandeln.

Folgende Lösung:
PHP:
SELECT CURRENT_TIMESTAMP,
       ROUND (  (  TO_DATE (TO_CHAR (CURRENT_TIMESTAMP, 'DD.MM.YYYY HH24:MI:SS'),
                            'DD.MM.YYYY HH24:MI:SS'
                           )
                 - TO_DATE ('01-01-1970', 'DD.MM.YYYY HH24:MI:SS')
                )
              * 86400,
              0
             ) unix,
       ROUND (  (  CAST (CURRENT_TIMESTAMP AS DATE)
                 - TO_DATE ('01-01-1970', 'DD.MM.YYYY HH24:MI:SS')
                )
              * 86400,
              0
             ) unix_with_cast
  FROM DUAL

Falls jemand eine elegantere Lösung hat, wäre es super die hier bekannt zu geben.

Grüße
 
Und jetzt als PL/SQL function:
PHP:
CREATE OR REPLACE FUNCTION f_timestamp2unix(indate timestamp)
RETURN NUMBER 
IS
  n_result NUMBER;
BEGIN
     SELECT DISTINCT unix_with_cast  INTO n_result
      FROM
      (
        SELECT 
        ROUND (  (  CAST (CURRENT_TIMESTAMP AS DATE)
                 - TO_DATE ('01-01-1970', 'DD.MM.YYYY HH24:MI:SS')
                )
              * 86400,
              0
        ) unix_with_cast
        FROM dual 

      ); 
  RETURN n_result;
END;
 

Neue Beiträge

Zurück