sql >> Database >  >> NoSQL >> MongoDB

Hoe de datum op te halen uit een MongoDB ObjectId met behulp van SQL

Dit kan als volgt worden bereikt (ervan uitgaande dat objectId is een string) in MySQL:

SELECT FROM_UNIXTIME(
    CAST(CONV(SUBSTR(objectId, 1, 8), 16, 10) AS UNSIGNED)
) FROM table

Het werkt als volgt:

  • SUBSTR(objectId, 1, 8) neemt de eerste 8 tekens van de hexadecimale objectId tekenreeks
  • CONV(..., 16, 10) converteert het hexadecimale getal naar een decimaal getal en retourneert het als een tekenreeks (die de UNIX-tijdstempel vertegenwoordigt)
  • CAST (...) AS UNSIGNED converteert de tijdstempelreeks naar een niet-ondertekend geheel getal
  • FROM_UNIXTIME(...) converteert het gehele tijdstempel naar de datum

Houd er rekening mee dat de weergegeven datum standaard is gebaseerd op de tijdzone-instellingen van uw systeem.



  1. Hoe kan ik een ObjectId genereren met mangoest?

  2. Mongodb:Vind documenten met array waar ten minste één element niet overeenkomt met ObjectID

  3. MongoDB:hoe vind je 10 willekeurige documenten in een verzameling van 100?

  4. Hoe kan ik gegevens naar Mongodb importeren vanuit het Json-bestand met behulp van java