美文网首页Power BI Features
Power BI 各类时间序列文本的处理方法(unixtime,

Power BI 各类时间序列文本的处理方法(unixtime,

作者: 青酱土豆泥 | 来源:发表于2019-03-13 10:24 被阅读0次

    当使用Power BI处理时间戳的时候,会遇到各种各样的坑。
    本文先讨论两种常见情况。如果有其他特殊场景,欢迎留言。

    划重点:

    • duration()

    1. unix timestamp

    Unix时间戳,是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
    常见的会是长成:1551684928 这样的连续数字。

    可以通过增加一列custom column将其转变为Datetime:

    = #datetime(1970, 1, 1, 0, 0, 0) + #duration(0, 0, 0, [UnixTime_ColumnName]/1000)

    2. 带tz的时间戳

    以中国时区为例
    例如:2019-03-013T09:25:41.4327813+08:00

    Power BI能够忽略时区部分,自动Parse"2019-03-013T09:25:41.4327813+00:00"这样的时间戳,但如果时区不为零,则会报错:

    DataFormat.Error: We couldn't parse the input provided as a DateTime value.
    Details:
        2019-03-013T09:25:41.4327813+08:00
    

    这时,我们可以通过简单的两步,解决问题:
    1. split column by Delimiter
    将时间戳 column 以 Operator : "+" 分为两列:

    Timestamp.1 Timestamp.2
    2019-03-013T09:25:41.4327813 08:00

    默认会分为属性是"Text"的两列, 需要将第一列变成"Date/Time属性"

    image.png

    2. add custom column

    = if [Timestamp.2] = "08:00" then [Timestamp.1]+#duration(0,8,0,0) else if [Timestamp.2] = "00:00" then [Timestamp.1] else [Timestamp.1]

    这一方法还可以用来处理local time 和 UTC time之间的GAP。
    目前,Power BI desktop中可以展示local timezone的时间,而publish到Power BI Service之后,则会变回UTC time。
    为了保持Report的一致性,也可以使用这一方法。

    Done.

    相关文章

      网友评论

        本文标题:Power BI 各类时间序列文本的处理方法(unixtime,

        本文链接:https://www.haomeiwen.com/subject/mjaapqtx.html