DateDiff Problem

G

Guest

I'm using the following in a query

ProdHrs:
(IIf(DateDiff("h",[StartTime],[EndTime])>0,DateDiff("n",[StartTime],[Endtime]),(DateDiff("n",[StartTime],[EndTime]))+(24*60)))/60

StartTime and EndTime are data entry fields in military time and are entered
at one time on the same day. I'm getting good results except in the
following type of instance:
Start Time = 16:00 and End Time = 16:30.. I'm getting 24.5 instead of .5.
It appears that if the result is less than 1 it is using the false side of
the statement instead of <0. I don't understand why this is being seen as <
0, so using the false side of the statement.??? Pls help!
 
K

Ken Snell [MVP]

DateDiff returns a value of 0 for this expression:

DateDiff("h",#16:00#,#16:30#)

That's because the time interval is less than one hour.

Use "n" instead of "h" in the expression, and change the logical operator to
"greater than or equal to":

(IIf(DateDiff("n",[StartTime],[EndTime])>=0,DateDiff("n",[StartTime],[Endtime]),(DateDiff("n",[StartTime],[EndTime]))+(24*60)))/60
 
G

Guest

Thank you very much.....

Ken Snell said:
DateDiff returns a value of 0 for this expression:

DateDiff("h",#16:00#,#16:30#)

That's because the time interval is less than one hour.

Use "n" instead of "h" in the expression, and change the logical operator to
"greater than or equal to":

(IIf(DateDiff("n",[StartTime],[EndTime])>=0,DateDiff("n",[StartTime],[Endtime]),(DateDiff("n",[StartTime],[EndTime]))+(24*60)))/60
--

Ken Snell
<MS ACCESS MVP>

neenmarie said:
I'm using the following in a query

ProdHrs:
(IIf(DateDiff("h",[StartTime],[EndTime])>0,DateDiff("n",[StartTime],[Endtime]),(DateDiff("n",[StartTime],[EndTime]))+(24*60)))/60

StartTime and EndTime are data entry fields in military time and are
entered
at one time on the same day. I'm getting good results except in the
following type of instance:
Start Time = 16:00 and End Time = 16:30.. I'm getting 24.5 instead of .5.
It appears that if the result is less than 1 it is using the false side of
the statement instead of <0. I don't understand why this is being seen as
<
0, so using the false side of the statement.??? Pls help!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top