Sonali
Sonali

Reputation: 2283

How to convert seconds into hh:mm format in Power Bi?

In Power Bi, I have a table that contains Name and TimeSpent by user in seconds. I want to convert total seconds spent by all users into duration format (hh:mm)

When I am getting seconds in hh:mm format for each user from database query, the values are coming up like these 12:63 etc. After importing these values into power bi, I tried to set its datatype to DateTime format but power bi shows an error saying that it is not a valid value. If I set the datatype of the column as string then strings dont add up.

What can be the ideal way to do it?

Upvotes: 6

Views: 37294

Answers (8)

Jonas Correa
Jonas Correa

Reputation: 91

you can solve this in one line:

measure = FORMAT(TIME(0, 0, tableNAME[your_column]), "HH:mm:ss")

Upvotes: 9

ROUNDDOWN(TableName[ColumnName]/3600,0)&":"&ROUNDDOWN(TableName[ColumnName]/60,0)-ROUNDDOWN(TableName[ColumnName]/3600,0)*60&":"&TableName[ColumnName]-ROUNDDOWN(TableName[ColumnName]/3600,0)*3600-(ROUNDDOWN(TableName[ColumnName]/60,0)-ROUNDDOWN(TableName[ColumnName]/3600,0)*60)*60

Upvotes: 0

Kishan Thacker
Kishan Thacker

Reputation: 9

I have solved a template for this:

This will enable to convert seconds into D:HH:MM:SS format

D:HH:MM:SS = 

VAR D = int([AVG CBT]/86400)

VAR A_D = [AVG CBT]- D * 86400

VAR HH = RIGHT(0 & INT(A_D/3600),2)

VAR A_HH = A_D - HH * 3600

VAR  MM = RIGHT(0 & INT(A_HH/60),2)

VAR A_MM = A_HH - MM*60

VAR SS = RIGHT(0 & INT(A_MM),2)

RETURN
D & ":" & HH & ":" & MM & ":" & SS

I think it will resolve most needs.

Kishan.

Upvotes: -1

user16543787
user16543787

Reputation: 80

I wanted a Power BI Measure wich is easy to read for this problem, code below if it's of use.

HH:MM = 
VAR TotalDuration = SUM(tableNAME[your_column] ) //if you use a measure just leave the SUM part out
VAR TotalHours = TRUNC (TotalDuration/3600)
VAR Min_ =  FORMAT(TRUNC(TotalDuration - TotalHours * 3600),"00")
RETURN
    TotalHours & ":" & Min_

The solution is adopted from the top answer of this question PowerBi Duration calculation in hh:mm:ss

Upvotes: 0

RET
RET

Reputation: 871

DAX code:

 = TIME(0,0,SUM('Table'[Timespent]))

Then click the modelling tab and choose Format - Date Time and choose the appropriate format.

Upvotes: 2

Filip Yaghob
Filip Yaghob

Reputation: 98

That's a better formula, which I'm using in PBI: HHMMSS = FORMAT(TIME(int(Table[TimeSpent] / 3600); int(mod(Table[TimeSpent]; 3600) / 60);int(mod(mod(Table[TimeSpent]; 3600); 60))); "HH:mm:ss")

Upvotes: 0

timo
timo

Reputation: 11

Had a similar question but for D:HH:MM:SS, code below if it's of use.

DurTime (meas) = 
VAR vDur = <<<duration in CALCULATE(SUM(seconds)) >>>
  RETURN INT(vDur/86400) & ":" &                     //Days
    RIGHT("0" & INT(MOD(vDur/3600,24)),2) & ":" &    //Hours 
    RIGHT("0" & INT(MOD(vDur/60,60)),2) & ":" &      //Minutes
    RIGHT("0" & INT(MOD(vDur,60)),2)                 //Seconds

Upvotes: 1

Foxan Ng
Foxan Ng

Reputation: 7151

You can try the following DAX:

HHMMSS = 
INT(Table[TimeSpent] / 3600) & ":" &
RIGHT("0" & INT((Table[TimeSpent] - INT(Table[TimeSpent] / 3600) * 3600) / 60), 2) & ":" &
RIGHT("0" & MOD(Table[TimeSpent], 3600), 2)

Source

Upvotes: 4

Related Questions