我有一个API,其中包含一个MongoDB ID,不幸的是,当使用API时,您无法在Mongo中将此ID转换为日期时间。
我正试图在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/如果有人能在这方面帮助我们,我们将不胜感激。谢谢
= #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