Dans la documentation Mongodb l'Objectid est formé avec un horodatage comme les 4 premiers octets, mais cela est représenté en hexadécimal. En supposant que la valeur hexadécimale est stockée sous forme de chaîne dans PostgreSQL, la requête suivante extraira uniquement les 8 premiers caractères de cet objectid, le convertira en un entier (qui est en secondes à partir du 1970-01-01) puis convertira cet entier en un horodatage . Par exemple :
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 conversion d'une chaîne hexadécimale en entier est abordée ici :Convertir l'hexadécimal dans la représentation textuelle en nombre décimal