Skip to main content
Inspiring
November 30, 2016
Answered

Help with handling CF/SQL Date Arithmatic?

  • November 30, 2016
  • 1 reply
  • 611 views

Hello

There is an order entry date: order_create_date.

I am able to display the aging by: #DateDiff("d", thequery.order_create_date, nowtime)#

I now need to stop the aging clock ticking with: order_onhold_date,

And resume the aging clock with: order_offhold_date

So it would be something like #DateDiff("d", thequery.order_create_date, nowtime)# minus #DateDiff("d",thequery.order_onhold_date,thequery.order_offhold_date)#

?

Any help would be appreciated- Thanks

This topic has been closed for replies.
Correct answer EddieLotter

That's correct, only you will need to take into account whether or not the order was placed on hold, and if so, whether or not it is still on hold.

I'm going to assume you have data integrity rules in place to prevent the on-hold dates from preceding the order date, that way you don't have to worry about it in code.

What you want to do is something like this:

<cfset nDaysOld = dateDiff('d', thequery.order_create_date, nowtime)>

<cfif thequery.order_onhold_date neq ''>

  <cfif thequery.order_offhold_date eq ''>

    <cfset nDaysOnHold = dateDiff('d', thequery.order_onhold_date, nowtime)>

  <cfelse>

    <cfset nDaysOnHold = dateDiff('d', thequery.order_onhold_date, order_offhold_date)>

  </cfif>

  <cfset nDaysOld -= nDaysOnHold>

</cfif>

Age: #nDaysOld#

Cheers

Eddie

1 reply

Inspiring
November 30, 2016

Oops- arithmetic- sorry the nuns would have killed me for that

EddieLotter
EddieLotterCorrect answer
Inspiring
December 1, 2016

That's correct, only you will need to take into account whether or not the order was placed on hold, and if so, whether or not it is still on hold.

I'm going to assume you have data integrity rules in place to prevent the on-hold dates from preceding the order date, that way you don't have to worry about it in code.

What you want to do is something like this:

<cfset nDaysOld = dateDiff('d', thequery.order_create_date, nowtime)>

<cfif thequery.order_onhold_date neq ''>

  <cfif thequery.order_offhold_date eq ''>

    <cfset nDaysOnHold = dateDiff('d', thequery.order_onhold_date, nowtime)>

  <cfelse>

    <cfset nDaysOnHold = dateDiff('d', thequery.order_onhold_date, order_offhold_date)>

  </cfif>

  <cfset nDaysOld -= nDaysOnHold>

</cfif>

Age: #nDaysOld#

Cheers

Eddie