Skip to main content
Inspiring
Nov 30, 2016 9:20 PM UTC
Answered

Help with handling CF/SQL Date Arithmatic?

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 is closed to new replies. Start a new post to keep the conversation going.
EddieLotter
EddieLotterCorrect answer
Inspiring
Dec 1, 2016 3:55 PM UTC

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

2 replies

Inspiring
Nov 30, 2016 9:21 PM UTC

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

Translate
EddieLotter
EddieLotterCorrect answer
Inspiring
Dec 1, 2016 3:55 PM UTC

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

Translate