Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Join us in Bucharest on Sept 18th for Qlik's AI Reality Tour! Register Now
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Calculate difference between two dates?

HI all,

I have two date fields, I have to calculate the difference in hours. viz., open date and close date.

Open_Date                  Close_Date

10/01/2016 08:20:00     12/01/2016 9:50:00

I used timestamp for both the columns and on the result also.

Eg: timestamp(Close_Date) - timestamp(Open_Date )  as Cycletime

Now i am getting the time in hours and minutes as below.

Eg: difference between abve dates is 49:30:00.

What I am expecting is like 49.50 hours(I have to calculate that 30 minutes into hours then add that to the 49 hours)

Thanks for any ideas.

regards

Prashanth

1 Solution

Accepted Solutions
Anonymous
Not applicable
Author

timestamp(close date-opendate) as difference time

View solution in original post

11 Replies
Kushal_Chawda

=round( (frac(timestamp(closedate))- frac(timestamp(opendate)))*24,0.01)

swuehl
MVP
MVP

As far as I can see,

Round( (Close_Date - Open_Date)*24, 0.01) AS CycleTime

should be enough

Anonymous
Not applicable
Author

timestamp(close date-opendate) as difference time

Not applicable
Author

Hi sweuhl,

Is the result is in minutes or hours.. I am getting wrong values??

Not applicable
Author

Hi kushal,

negative values are getting when i use the above expression..?

Not applicable
Author

Sweuhl , am I clear with my requirement ??

Anonymous
Not applicable
Author

Could this work?

Add a variable Close_Date and Open_Date in script

(DayNumberOfYear(Close_Date) - DayNumberOfYear((Open_Date)))

And to get in hours:

(interval(num(Close_Date)-num(Open_Date),'hh'))

swuehl
MVP
MVP

Yes. CycleTime should be in hours, with a fraction part as requested (0.5 equals 30 mins):

SET TIMESTAMPFORMAT = 'DD/MM/YYYY hh:mm:ss';

LOAD *,

Round( (Close_Date - Open_Date)*24, 0.01) AS CycleTime,

timestamp(Close_Date - Open_Date) as differencetime;

LOAD * INLINE [

Open_Date,                 Close_Date

10/01/2016 08:20:00,     12/01/2016 9:50:00

];

Can't see that the suggested expression you've chosen as correct answer delivers 49.50, mine expression does:

Open_Date Close_Date CycleTime differencetime
10/01/2016 08:20:0012/01/2016 9:50:0049.5001/01/1900 01:30:00
Kushal_Chawda

I don't understand how this could be a correct answer