W dokumentacji Mongodb Objectid jest tworzony ze znacznikiem czasu jako pierwsze 4 bajty, ale jest to reprezentowane w systemie szesnastkowym. Zakładając, że wartość szesnastkowa jest przechowywana jako ciąg znaków w PostgreSQL, następujące zapytanie wyodrębni tylko pierwsze 8 znaków tego obiektu, przekonwertuje je na liczbę całkowitą (czyli sekundy od 1970-01-01), a następnie przekonwertuje tę liczbę całkowitą na znacznik czasu . Na przykład:
SELECT TO_TIMESTAMP(int_val) ts_val
FROM (
SELECT ('x' || lpad(left(objectid,8), 8, '0'))::bit(32)::int AS int_val
FROM (
VALUES ('507c7f79bcf86cd7994f6c0e')
) AS t1(objectid)
) AS t2
;
Konwersja ciągu szesnastkowego na liczbę całkowitą jest omówiona tutaj:Konwertuj szesnastkę w reprezentacji tekstowej na liczbę dziesiętną