4 Stimmen

Wie kann ich DB2 TIMESTAMP in UTC Millisekunden umwandeln?

Gibt es eine DB2-Funktion, um TIMESTAMP in UTC-Millisekunden umzuwandeln?

2voto

Ian Bjorhovde Punkte 10676

Unter der Annahme, dass Sie die Anzahl der Millisekunden seit der Epoche (1970-01-01 00:00:00) erhalten möchten, gibt es keine integrierte Funktion, um dies zu tun.

Es ist jedoch trivial, eine UDF zu erstellen, die dies kann:

CREATE OR REPLACE FUNCTION utcmillis (in db2ts timestamp)
   returns bigint
   language sql
   deterministic
   no external action
   return (
      bigint((days(db2ts - current timezone) - days('1970-01-01-00.00.00.000000')) * 86400 + midnight_seconds(db2ts - current timezone))*1000 + microsecond(db2ts)/1000
   );

0voto

Lucas Punkte 12757

Sie könnten TIMESTAMPDIFF verwenden. Irgendetwas wie das:

TIMESTAMPDIFF(1,CHAR(timestampField -
    TIMESTAMP('1970-01-01-00.00.00.000000')))

Angenommen, Sie meinen Millisekunden seit dem Unix-Epoche. Ich habe dies nicht getestet, und Sie müssen möglicherweise den Wert um einen Faktor von 10 anpassen, da die db2-Dokumentation nur von Bruchteilen einer Sekunde spricht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X