MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como recuperar a data de um ObjectId do MongoDB usando SQL


Isso pode ser feito da seguinte forma (assumindo objectId é uma string) no MySQL:
SELECT FROM_UNIXTIME(
    CAST(CONV(SUBSTR(objectId, 1, 8), 16, 10) AS UNSIGNED)
) FROM table

Funciona da seguinte forma:
  • SUBSTR(objectId, 1, 8) pega os primeiros 8 caracteres do objectId hexadecimal seqüência
  • CONV(..., 16, 10) converte o número hexadecimal em um número decimal e o retorna como uma string (que representa o timestamp UNIX)
  • CAST (...) AS UNSIGNED converte a string de carimbo de data/hora em um inteiro sem sinal
  • FROM_UNIXTIME(...) converte o inteiro do carimbo de data/hora na data

Observe que, por padrão, a data exibida será baseada nas configurações de fuso horário do seu sistema.