在 MongoDB 中,您可以使用 getTimestamp() 函数从 ObjectId 检索日期。如何使用 SQL 从 MongoDB ObjectId 检索日期(例如,在这样的 ObjectId 存储在 MySQL 数据库中的情况下)?

示例输入:

507c7f79bcf86cd7994f6c0e

想要的输出:
2012-10-15T21:26:17Z

最佳答案

这可以在 MySQL 中实现如下(假设 objectId 是一个字符串):

SELECT FROM_UNIXTIME(
    CAST(CONV(SUBSTR(objectId, 1, 8), 16, 10) AS UNSIGNED)
) FROM table
它的工作原理如下:
  • SUBSTR(objectId, 1, 8) 取十六进制 objectId 字符串中的前 8 个字符
  • CONV(..., 16, 10) 将十六进制数转换为十进制数并作为字符串返回(代表 UNIX 时间戳)
  • CAST (...) AS UNSIGNED 将时间戳字符串转换为无符号整数
  • FROM_UNIXTIME(...) 将时间戳整数转换为日期

  • 请注意,默认情况下,显示的日期将基于您系统的时区设置。

    关于sql - 如何使用 SQL 从 MongoDB ObjectId 中检索日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22454804/

    10-15 12:32