sql >> Database teknologi >  >> NoSQL >> MongoDB

Sådan udtrækkes tidsstempel fra mongodb objectid i postgres

I Mongodb-dokumentation Objectid er dannet med et tidsstempel som de første 4 bytes, men dette er repræsenteret i hexidecimal. Hvis vi antager, at den hexidecimale værdi er gemt som en streng i PostgreSQL, vil følgende forespørgsel kun udtrække de første 8 tegn af det objektid, konvertere det til et heltal (som er sekunder fra 1970-01-01) og derefter konvertere det heltal til et tidsstempel . For eksempel:

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 af en hexadecimal streng til heltal diskuteres her:Konverter hex i tekstgengivelse til decimaltal



  1. node-mongodb-native:Hvordan kan jeg dele db api-objektet for forbindelsesopkaldet gennem min applikation

  2. Hvad er den mest effektive node.js inter-proces kommunikationsbibliotek/metode?

  3. Hvordan indlejrer man en liste i en struktur i Redis for at reducere topniveauet?

  4. Hvordan kan vi sikre dataintegritet i mongoDb?