Gibt es eine DB2-Funktion, um TIMESTAMP
in UTC-Millisekunden
umzuwandeln?
Antworten
Zu viele Anzeigen?
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
);
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.