En documentación de Mongodb el Objectid se forma con una marca de tiempo como los primeros 4 bytes, pero esto se representa en hexadecimal. Suponiendo que el valor hexadecimal se almacena como una cadena en PostgreSQL, la siguiente consulta extraerá solo los primeros 8 caracteres de ese ID de objeto, lo convertirá en un número entero (que son segundos desde 1970-01-01) y luego convertirá ese número entero en una marca de tiempo . Por ejemplo:
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
;
La conversión de una cadena hexadecimal a entero se analiza aquí:Convertir hexadecimal en representación de texto a número decimal