我有一个包含MongoDB ID的API,很遗憾,使用API时,您无法将此ID转换为Mongo中的日期时间。
我正在尝试在Power BI中将其转换为日期时间。我找到了一个JavaScript函数,可以将其转换:
var dateFromObjectId = function (objectId) {
return new Date(parseInt(objectId.substring(0, 8), 16) * 1000);
};
在Power BI中,我设法使该函数的子字符串部分可以使用:
substring = MID([objectID], 0, 8)
因此,在这种情况下,Mongo ID如下所示:
5bec695948cbd00519d0d8ca
,子字符串将返回:
5bec6959
JS函数的下一步是将字符串从十六进制解析为十进制,以便可以将其转换为日期时间。我一直无法找到一种有效的方法。我已经尝试过使用自定义函数的一些解决方案,但它们似乎无能为力。下面的链接显示了我在何处获得JS函数和对话计算器: https://steveridout.github.io/mongo-object-time/ 如果有人可以帮助我们,我们将不胜感激。 谢谢!
答案 0 :(得分:0)
= #datetime(1970,1,1,0,0,0) + #duration(0,0,0,Expression.Evaluate("0x" & Text.Range([_id],0, 8)))
// [_id] is the column containing the mongo_id
// Text.Range --> Gets the first 8 characters
// Expression.Evaluate -> converts from HEX to DEC
// Adds to epoch time