I Mongodb-dokumentation Objektid är format med en tidsstämpel som de första 4 byten, men detta representeras i hexidecimal. Om vi antar att hexidecimalt värde lagras som en sträng i PostgreSQL, kommer följande fråga att extrahera bara de första 8 tecknen i det objekt-id, konvertera det till ett heltal (vilket är sekunder från 1970-01-01) och sedan konvertera det heltal till en tidsstämpel . Till exempel:
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
;
Konvertering av en hexadecimal sträng till heltal diskuteras här:Konvertera hex i textrepresentation till decimaltal