Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Administrator
5 years ago
Solved

Convertir cadena con Timestamp

Hola a todos, he estado con un campo que recibí de Postgre. Está estructurado como: 1d:12h:21m:03s y es un valor de cadena. Para Postgree, es un formato válido, pero PBI lo convierte en texto.

El día, la hora o incluso el minuto pueden no apper (en caso de que no duró más de 24h).

Necesito convertirlo a un formato que me permita tomar su valor medio y usarlo.

¡Gracias por el apoyo!

  • let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMkyxMjTKsDIyzLUyMC5WitWJVjLNsDIBcg0tIFzjDCtjmIxprlJsLAA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [dur = _t]),
        #"Added Custom" = Table.AddColumn(Source, "Duration", each let l = Text.Split([dur],":"), value = List.Transform(l, each Number.From(Text.Remove(_, {"d","h","m","s"}))), unit = List.Transform(l, each Text.Remove(_, {"0".."9"})), dhms = [d=0, h=0, m=0, s=0] & Record.FromList(value, unit) in #duration(dhms[d], dhms[h], dhms[m], dhms[s]), type duration)
    in
        #"Added Custom"

    Screenshot 2021-05-29 015730.png

1 Reply

  • let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMkyxMjTKsDIyzLUyMC5WitWJVjLNsDIBcg0tIFzjDCtjmIxprlJsLAA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [dur = _t]),
        #"Added Custom" = Table.AddColumn(Source, "Duration", each let l = Text.Split([dur],":"), value = List.Transform(l, each Number.From(Text.Remove(_, {"d","h","m","s"}))), unit = List.Transform(l, each Text.Remove(_, {"0".."9"})), dhms = [d=0, h=0, m=0, s=0] & Record.FromList(value, unit) in #duration(dhms[d], dhms[h], dhms[m], dhms[s]), type duration)
    in
        #"Added Custom"

    Screenshot 2021-05-29 015730.png