sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man hämtar datumet från ett MongoDB ObjectId med SQL

Detta kan uppnås enligt följande (förutsatt att objectId antas är en sträng) i MySQL:

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

Det fungerar enligt följande:

  • SUBSTR(objectId, 1, 8) tar de första 8 tecknen från det hexadecimala objectId sträng
  • CONV(..., 16, 10) konverterar det hexadecimala talet till ett decimaltal och returnerar det som en sträng (som representerar UNIX-tidsstämpeln)
  • CAST (...) AS UNSIGNED konverterar tidsstämpelsträngen till ett osignerat heltal
  • FROM_UNIXTIME(...) konverterar tidsstämpelns heltal till datum

Observera att som standard kommer det visade datumet att baseras på ditt systems tidszoninställningar.



  1. TypeError:Kan inte använda operatorn 'in' för att söka efter '_id' i [{}]

  2. Rätt sätt att börja mongodb och express?

  3. Har mongoose / mongodb tillgång till objektreferenser i schemat under aggregering?

  4. mongo grupp fråga hur man behåller fält