在Power BI中将MongoDB ID转换为日期时间

时间:2018-12-13 15:57:47

标签: mongodb powerbi

我有一个包含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/ 如果有人可以帮助我们,我们将不胜感激。 谢谢!

1 个答案:

答案 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