小编典典

如何使用SQL从MongoDB ObjectId中检索日期

sql

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

输入示例:

507c7f79bcf86cd7994f6c0e

想要的输出:

2012-10-15T21:26:17Z

阅读 161

收藏
2021-04-28

共1个答案

小编典典

这可以通过以下方式实现(假设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(...) 将时间戳整数转换为日期

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

2021-04-28