Forum Discussion
kucluk_ok
3 years agoFrequent Visitor
Change data duration to seconds from format d h m s
I Have raw data duration , where the format is not standard like this
i want to convert from Column "Down" to column "inSEC" using this query to manage the d=86400 seconds, h=3600seconds , m =60 seconds
inSEC = SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(Report[Down],"d","*86400"),"h","*3600"),"m","*60"),"s","*1")," ","+")
and i want to the query automaticly calculate the "multiply" and "add"
example in 31d = 31*86400 = 2,678,400 seconds
inSec = SUMX ( ADDCOLUMNS ( DATATABLE ( "n", STRING, "f", INTEGER, { { "d", 86400 }, { "h", 3600 }, { "m", 60 }, { "s", 1 } } ), "@sec", VAR _p = SUBSTITUTE ( SUBSTITUTE ( SUBSTITUTE ( MID ( 'Report'[Down], 1, FIND ( [n], 'Report'[Down],, 1 ) - 1 ), "m", "|" ), "h", "|" ), "d", "|" ) RETURN VALUE ( 0 & PATHITEM ( _p, PATHLENGTH ( _p ) ) ) * [f] ), [@sec] )
4 Replies
- wdx223_Daniel
Community Champion
inSec = SUMX ( ADDCOLUMNS ( DATATABLE ( "n", STRING, "f", INTEGER, { { "d", 86400 }, { "h", 3600 }, { "m", 60 }, { "s", 1 } } ), "@sec", VAR _p = SUBSTITUTE ( SUBSTITUTE ( SUBSTITUTE ( MID ( 'Report'[Down], 1, FIND ( [n], 'Report'[Down],, 1 ) - 1 ), "m", "|" ), "h", "|" ), "d", "|" ) RETURN VALUE ( 0 & PATHITEM ( _p, PATHLENGTH ( _p ) ) ) * [f] ), [@sec] )- kucluk_okFrequent Visitor
I Got error- " cannot convert value 0 45 of type Text to type number"
- kucluk_okFrequent Visitor
add one more subtitute to remove space from data.
- kucluk_okFrequent Visitor
I Got it, why error, because thereis space between data, i add subtitute to remove space
Column = SUMX ( ADDCOLUMNS ( DATATABLE ( "n", STRING, "f", INTEGER, { { "d", 86400 }, { "h", 3600 }, { "m", 60 }, { "s", 1 } } ), "@sec", VAR _p = SUBSTITUTE( SUBSTITUTE ( SUBSTITUTE ( SUBSTITUTE ( MID ( 'Report'[Down], 1, FIND ( [n], 'Report'[Down],, 1 ) - 1 ), "m", "|" ), "h", "|" ), "d", "|" )," ","") RETURN VALUE ( 0 & PATHITEM ( _p, PATHLENGTH ( _p ) ) ) * [f] ), [@sec] )