Hello, I am trying to get the time difference between two dates from a sharepoint list item.
When I create a new item I am sending an email with the item's information.
Now I want to send in the email body the difference between StarDate and EndDate in hour format (hh:mm)
Any help would be great, thanks
Hi @Anonymous ,
There is no date difference function available in flow to calculate the difference between two days. You need to use the ticks function, then subtract the two values and finally divide the difference by a fixed value to get the difference of days. Please see below.
First declare three variables.
Then add the SharePoint GetList
Next add the loop
Here above the ticks expression is for the start date is as follows.
If this reply has answered your question or solved your issue, please mark this question as answered. Answered questions helps users in the future who may have the same issue or question quickly find a resolution via search. If you liked my response, please consider giving it a thumbs up.
Hi there! So, I went a different route than @abm so you'll have your choice of solutions (great place to be ) -
First, a bit about date math in Flow: It's weird. Like seriously weird. But it's not just Flow, I guess a lot of computer date math works like this. Check out this article on the specifics of how this all works, I think it's a good start for the beginner.
For the solution, I did take the same path in converting the two dates to "ticks". I don't think there is any way around that yet. But, instead of dividing everything by 864000000000, which is the number of ticks in a single day...I used 600000000, which converts everything to 'minutes' instead. So, just like @abm , initialize an integer variable for each date, and for the value, try using DIV(ticks(utcNow()),600000000) (but replace the red part with each respective date/time).
So, now you've got two variables... DateTime001 and DateTime002 (or whatever you call it) both DateTimes are actually numbers counting the number of minutes since New Year's Day, 1601 (no joke, I said it was weird). Now, we initialize a third (integer) variable that will be the difference between the two...that expression will look like this:
sub(variables('DateTime001'),variables('DateTime002')) - Again, the red stuff is your actual variable names.
This will give you the difference between the two in number of minutes...so now we just need to format it in the hh:mm format. This is where it gets fun:
Credit to John Liu for this idea, but basically we are going to add minutes to midnight and have it return that time...which will look like hours and minutes (so, 130 minutes will look like 02:10). That expression looks like this:
addMinutes(startOfDay(utcNow()), variables('varTimeDiff'), 'hh:mm') - The red is the variable you created above. You can see we are just adding a number of minutes to midnight ('start of day') and then formatting that in an hh:mm format.
Pretty cool, I think.
Either way, keep us posted.
If this reply has answered your question or resolved your challenge, please consider marking it as a Solution. This helps other users find it more easily via search.
Hi @Anonymous ,
Have you considered creating a calculated column?
Please check this online doc and see if it helps:
Thank you for this write up @edgonzales . Really helped me out.
Can you please tell me what i should select in the apply to each field (*Select an output from previous steps) after setting 3 variables.
Could you please explain how the formula is linked to the column StartDate and EndDate in the sharepoint list?
Hi there - So, the Apply to each is weird and may be causing you some trouble. It's difficult to troubleshoot without the context of your specific flow.
Maybe try posting a new thread with some more details and screen shots and we can help you there?