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

int to hh:mm:ss


Hi,


I am converting seconds into hh:mm:ss like


= Interval(Interval#(SUM (Value),'ss'),'hh:mm:ss')

Conversion is working fine but if value is big number it is coming in -ve.
Why it is coming -ve value? Please help/suggest some better solution.


Test:

Load * inline [
id,Value
1,1000,
2,25500000,
3,4556800000,
4,6767676767,
5,6767676767,

];

1 Solution

Accepted Solutions
crusader_
Partner - Specialist
Partner - Specialist

Hi,

To convert seconds into interval ('hh:mm:ss') use below expression:

interval(div(sum(Value),3600)&':'&(div(sum(Value),60)-div(sum(Value),3600)*60)&':'&mod(sum(Value),60),'hh:mm:ss')

Hope this helps.

Regards,

Andrei Kaliahin

View solution in original post

6 Replies
marcus_sommer

Are you really sure that you had values in seconds with these sizes?

6767676767 / 3600 / 24 / 365 = 214 years

- Marcus

Not applicable

Hi

can you attach a sample for you req?

-Amay

crusader_
Partner - Specialist
Partner - Specialist

Hi,

To convert seconds into interval ('hh:mm:ss') use below expression:

interval(div(sum(Value),3600)&':'&(div(sum(Value),60)-div(sum(Value),3600)*60)&':'&mod(sum(Value),60),'hh:mm:ss')

Hope this helps.

Regards,

Andrei Kaliahin

jagan
Luminary Alumni
Luminary Alumni

Hi,

Try like this

Test:

Load *,

Floor(Value/ 3600) & ':' & Floor(Mod(Value, 3600)/60) & ':' &  Mod(Value, 60) AS HHMMSS

inline [
id,Value
1,1000,
2,25500000,
3,4556800000,
4,6767676767,
5,6767676767

];

Hope this helps you.

Regards,

Jagan.

ashishashu
Contributor
Contributor
Author

Hi Andrei,

The expression worked as expected . Thank you.

Regards,

Ashish

MarcoWedel

seems to be a limitation of the Interval#() function rather than the Interval() function:

= Interval(SUM (Value)/86400,'hh:mm:ss')

is working for me.

regards

Marco