【问题标题】:How to convert decimal date type column to time data type in power query/power BI?如何在 power query/power BI 中将十进制日期类型列转换为时间数据类型?
【发布时间】:2022-11-28 21:30:21
【问题描述】:

该列由十进制格式的分钟组成。这将被转换为时间格式。

例子:第5条记录是61分6秒。

这将显示为 1 小时 1 分 6 秒 - (01:01:06)。

如何在 power query editor/power BI 中解决这个问题?

【问题讨论】:

    标签: powerbi visualization powerquery powerbi-desktop data-transform


    【解决方案1】:

    只需将分钟小数除以 (24 * 60) 即可将其转换为时间格式:

    let
        Source = Table.FromList({"0.3", "2.7", "46.8", "61.6"}),
        #"Renamed Columns" = Table.RenameColumns(
            Source,{{"Column1", "minutes_watched"}}),
        #"Changed Type" = Table.TransformColumnTypes(
            #"Renamed Columns",{{"minutes_watched", type number}}),
        #"Added Custom" = Table.AddColumn(
            #"Changed Type", "Custom", each [minutes_watched] / 60 / 24),
        #"Changed Type1" = Table.TransformColumnTypes(
            #"Added Custom",{{"Custom", type time}})
    in
        #"Changed Type1"
    

    【讨论】:

      【解决方案2】:

      添加列...自定义列..带公式

      = #duration(0,0,Number.From(Text.Split(Text.From([minutes_watched]),"."){0}),Number.From(Text.Split(Text.From([minutes_watched]),"."){1}))
      

      【讨论】:

        【解决方案3】:

        很多选择。您可以在 Power Query 中执行此操作,在 DAX 中将其作为度量值或计算列。

        这是一个简单的计算列:

        Formatted = 
        VAR _hrs = QUOTIENT ( [minutes_watched] , 60 )
        VAR _mins = INT ( [minutes_watched] - _hrs * 60 )
        VAR _sec = MOD ( [minutes_watched] , 1.0 )
        RETURN
        FORMAT(_hrs,"00")&":"&FORMAT(_mins,"00")&":"&FORMAT(_sec,"00")
        

        这也处理了超过 24 小时的怪人观看,此时 TIME 数据类型将溢出:

        它也很容易写成一种衡量标准,其中观看的分钟数可以是一个聚合:

        Formatted Minutes := 
        VAR _agg_time = [Sum minutes watched] // Aggregation measure of choice goes here
        VAR _hrs = QUOTIENT ( _agg_time , 60 )
        VAR _mins = INT ( _agg_time - _hrs * 60 )
        VAR _sec = MOD ( _agg_time , 1.0 )
        RETURN
        FORMAT(_hrs,"00")&":"&FORMAT(_mins,"00")&":"&FORMAT(_sec,"00")
        

        这给你这个结果:

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-12-28
          • 2022-08-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多