Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply

Convert Data Type to time or Duration

Hello , 

 

I have a time period that I need to covernt in to a time period on PowerBI, but it gives me a error, I tried sever ways did not work. I am kinda stumped. I would really appreciate if anybody tell me what wrong.  

 

Data

LocationTime PeriodTraffic% Traffic
100 - Park City7:00 AM - 7:59AM30.024
100 - Park City8:00 AM - 8:59AM30.024
100 - Park City9:00 AM - 9:59AM20.016
100 - Park City10:00 AM - 10:59AM80.063
100 - Park City11:00 AM - 11:59AM100.079
100 - Park City12:00 PM - 12:59PM120.094
100 - Park City1:00 PM - 1:59PM140.11
100 - Park City2:00 PM - 2:59PM120.094

 

When I convert it, gives me below error

Convert.PNG

Error.PNG

 

Thank you So mcuh

DHana 

1 ACCEPTED SOLUTION

DHana, please understand that a time value is 1 timestamp; if converted to a number then it will be between 0 and 1.

A Time Period like yours is just text.

 

Having said that, in the Query Editor: Add Column - Extract - Text Before Delimiter: delimiter <space>, advanced, skip 1.

Rename the column to Start Time and adjust the data type to Time.

 

Close & Load. In the Data view, tab Modeling, select Time Period and sort by Column Start Time.

 

Generated query code (the first 2 steps just create the table):

 

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("jc+9CsMwDATgVzGe06JzfmxlC5kD3kOGjKVb6dK3r2on9hJBB4E4+DhpXS2IzM3E/fU08+P9sY31o0TTIqkfe54WiVoZupPr7NZckVBI+JdwIXwSlwkGhYCKkfVAIaOh1RAqwolAWXnWlPupmJQTFZM6DmTtJ1RUTJcMoJDac1mzfQE=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Location = _t, #"Time Period" = _t, Traffic = _t, #"% Traffic" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Location", type text}, {"Time Period", type text}, {"Traffic", Int64.Type}, {"% Traffic", type number}}),
    #"Inserted Text Before Delimiter" = Table.AddColumn(#"Changed Type", "Start Time", each Text.BeforeDelimiter([Time Period], " ", 1), type text),
    #"Changed Type1" = Table.TransformColumnTypes(#"Inserted Text Before Delimiter",{{"Start Time", type time}})
in
    #"Changed Type1"

 

 

Sort Time Period by Start Time.pngGraph % Traffic by Time Period.png

Specializing in Power Query Formula Language (M)

View solution in original post

6 REPLIES 6
Vvelarde
Community Champion
Community Champion

@dananjayaprasad

 

HI, Dhana:

 

Please follow the steps :

 

Duration.gif

 

Regards

 

Victor

Lima  - Peru

 

 




Lima - Peru

Hey Victor, 

 

Thank you so much for clear instructions. I learn new thing too, but I think I counfused you a bit. please see below image. My time period does not recognize as time. Capture.PNG

 

You can see this picture, my time period take it as a General Number. Its should be sort as 7. AM to PM, but it is not. I try to convert the colounm as time. Doest not work. 

 

I would really appreciate your time. 

 

Thank you 

Dhana

@dananjayaprasad

 

You need to specify the sort of the interval times.

 

You can find a sample in this thread:

 

https://community.powerbi.com/t5/Desktop/Sorting-by-Month-as-Text-Jan-Feb-Mar-etc/td-p/9237

 

Regards

 

Victor

Lima - Peru




Lima - Peru

Hey Vector, 

 

Now I got a new problem. Do you know by any chance. how to concatenate two time? I used two column, it gives me a error. I want something like this 7.00.00 AM - 7.59.00 AM. ( Sorry, I could not figure it out the time intervel) 

 

Capture.PNG

 

Thank you so much

Dhana 

DHana, please understand that a time value is 1 timestamp; if converted to a number then it will be between 0 and 1.

A Time Period like yours is just text.

 

Having said that, in the Query Editor: Add Column - Extract - Text Before Delimiter: delimiter <space>, advanced, skip 1.

Rename the column to Start Time and adjust the data type to Time.

 

Close & Load. In the Data view, tab Modeling, select Time Period and sort by Column Start Time.

 

Generated query code (the first 2 steps just create the table):

 

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("jc+9CsMwDATgVzGe06JzfmxlC5kD3kOGjKVb6dK3r2on9hJBB4E4+DhpXS2IzM3E/fU08+P9sY31o0TTIqkfe54WiVoZupPr7NZckVBI+JdwIXwSlwkGhYCKkfVAIaOh1RAqwolAWXnWlPupmJQTFZM6DmTtJ1RUTJcMoJDac1mzfQE=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Location = _t, #"Time Period" = _t, Traffic = _t, #"% Traffic" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Location", type text}, {"Time Period", type text}, {"Traffic", Int64.Type}, {"% Traffic", type number}}),
    #"Inserted Text Before Delimiter" = Table.AddColumn(#"Changed Type", "Start Time", each Text.BeforeDelimiter([Time Period], " ", 1), type text),
    #"Changed Type1" = Table.TransformColumnTypes(#"Inserted Text Before Delimiter",{{"Start Time", type time}})
in
    #"Changed Type1"

 

 

Sort Time Period by Start Time.pngGraph % Traffic by Time Period.png

Specializing in Power Query Formula Language (M)

Thank you So much. This works. I appreciate your time and help. 

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.