【问题标题】:Power BI - Desktop DateTime From Azure Cosmos DBPower BI - Azure Cosmos DB 中的桌面日期时间
【发布时间】:2019-09-17 00:45:42
【问题描述】:

我正在使用通过 Azure Cosmos .NET SDK 填充的 Azure Cosmos DB。根据文档,DateTimes 应存储为 ISO_8601 格式 (https://docs.microsoft.com/en-us/azure/cosmos-db/working-with-dates) 的序列化字符串。当我在 azure 门户或 azure storage explorer 应用程序中查看我的记录时,情况似乎就是这样。

您可以看到我的 StartTime 和 EndTime 属性以及 TimeStamp 的格式为“2019-07-15T16:24:51.392Z”

当我将数据导入 Power BI Desktop 时,该值以一些奇怪的字符串/数字出现。例如

00636988010188048801

我认为这可能是自 1970 年 1 月 1 日以来的毫秒数,但事实并非如此。有谁知道如何正确地将日期时间导入 Power BI 或如何将该值转换为日期时间?尝试将数据类型设置为各种 DateTime 选项中的任何一个都会导致错误。

高级编辑器如下所示:

let
    Source = DocumentDB.Contents("https://myurl.documents.azure.com:443/"),
    TablesDB = Source{[id="TablesDB"]}[Collections],
    TablesDB_InstanceData = TablesDB{[db_id="TablesDB",id="InstanceData"]}[Documents],
    #"Expanded Document" = Table.ExpandRecordColumn(TablesDB_InstanceData, "Document", {"id", "RunId", "InstanceId", "StartTime", "EndTime", "MessagesProcessed", "IsCompareInstance", "_ts"}, {"id", "RunId", "InstanceId", "StartTime", "EndTime", "MessagesProcessed", "IsCompareInstance", "_ts"}),
    #"Expanded RunId" = Table.ExpandRecordColumn(#"Expanded Document", "RunId", {"$v"}, {"$v"}),
    #"Expanded InstanceId" = Table.ExpandRecordColumn(#"Expanded RunId", "InstanceId", {"$v"}, {"$v.1"}),
    #"Expanded StartTime" = Table.ExpandRecordColumn(#"Expanded InstanceId", "StartTime", {"$v"}, {"$v.2"}),
    #"Expanded EndTime" = Table.ExpandRecordColumn(#"Expanded StartTime", "EndTime", {"$v"}, {"$v.3"}),
    #"Expanded MessagesProcessed" = Table.ExpandRecordColumn(#"Expanded EndTime", "MessagesProcessed", {"$v"}, {"$v.4"}),
    #"Expanded IsCompareInstance" = Table.ExpandRecordColumn(#"Expanded MessagesProcessed", "IsCompareInstance", {"$v"}, {"$v.5"})
in
    #"Expanded IsCompareInstance"

【问题讨论】:

  • 您能否分享 Power Query 代码以及与这些时间戳交互的任何 DAX?使用DateTime.From("2019-07-15T16:24:51.392Z") 进行的快速测试将字符串解释为没有问题的日期时间。
  • 我是power bi的新手,我不确定power查询代码或DAX是什么?我将来自“高级编辑器”的代码放在问题中。我不清楚数据是如何存储的。我不确定 Azure 数据资源管理器是否正在转换数据以将其显示为日期或什么,但 power bi 没有以日期形式显示它,它显示为那个奇怪的数字。
  • 作为跟进,我向 Azure Cosmos Table SDK github 页面提交了一个问题,他们说他们正在以某种他们没有发布的格式存储日期。所以这就是为什么我无法弄清楚。 github.com/Azure/azure-cosmos-table-dotnet/issues/14

标签: azure azure-cosmosdb powerbi-desktop


【解决方案1】:

当我将此作为问题发布到 Power BI 社区时,那里有人发布了处理此问题的方法:

let

ConvertTimestamp = (ts) => #datetime(1, 1, 1, 0, 0, 0) + #duration(0, 0, 0, ts / 10000000)

in

ConvertTimestamp(635912639960000000)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-21
    相关资源
    最近更新 更多