cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
HarshavardhanG
Helper I
Helper I

Format timestamp from Excel Online to send mails: How to use formatDateTime?

Hi, here's what I'm trying to achieve:

  1. To get all rows from an excel online sheet (MS Forms Responses)
  2. Select only one user's rows and create an HTML table of the rows
  3. Send the html table to the user and cc his manager

The Excel Online sheet looks (MS Forms Responses) like this 

Excel Online MS Forms Response.PNG

The Start time, Completion time columns are timestamps and i have some other columns (like Meeting date) where the user selects a date from calendar option in MS Forms.

 

Here's how my flow looks:

Flow OutlineFlow OutlineApply to each 2.PNGApply to each 2 a.PNG

 

I was able to collect all rows of a user and send mail to them. And here's how it looks:
mail.PNGhtml table date formatting.PNG

 

In the mail (and in the attachement) the user gets the date-time and dates in integers, which is inconvinient.

 

How should I format the start time, completion time columns to match this format: 16/11/2020 7:22:46 PM (Indian format) and meeting date column to match: 16/11/2020 format?

 

Without much success, I tried using formatDateTime, addDays, addSeconds functions and kept stumbling on the following errors (one in each of my trials):

  1. Unable to process template language expressions in action 'Compose_2' inputs at line '1' and column '14327': 'The template language expression 'if(empty(items('Apply_to_each_2')?['Start_x0020_time']),'',addDays('1899-12-30',int(items('Apply_to_each_2')?['Start_x0020_time']),'MM/dd/yyyy'))' cannot be evaluated because property 'Start_x0020_time' cannot be selected. Property selection is not supported on values of type 'String'. 
  2. The template language function 'formatDateTime' expects its first parameter to be of type string. The provided value is of type 'Null'.

After searching for answers, and trying out all existing slutions for almost a week (yes, I'm a newbie to MS Flow 🙂 ), i'm compelled to post here and know the right away of doing this. 

 

Can someone plese tell me the right way to do this?

Any/all help will be much appreciated!

 

2 ACCEPTED SOLUTIONS

Accepted Solutions
abm
Super User III
Super User III

Hi @HarshavardhanG 

 

Please have a look at my video tutorials 

 

https://www.youtube.com/watch?v=uFZxXMuLj-E

 

https://www.youtube.com/watch?v=r1LhHU5lXkM

 

If you need any further help please let me know.

 

Thanks

 

 



Did I answer your question? Mark my post as a solution!

If you liked my response, please consider giving it a thumbs up


Proud to be a Flownaut!

Learn more from my blogPower Automate Video Tutorials

View solution in original post

Paulie78
Super User III
Super User III

Here is something you could use:

 

addDays
(
  '1899-12-30', int(substring(string(outputs('ExcelDateTime')), 0, 
  indexOf(string(outputs('ExcelDateTime')),'.'))), 'dd-MM-yyyy'
)

 

You would need to either:

  • replace outputs('ExcelDateTime') with your own value retrieved from Excel or..
  • add a compose step before using this expression called "ExcelDateTime"

Explanation:

 

  • The first value in your example is 44065.8074768518.
  • The first part of that is 44065, which represents the day.
  • The addDays function is used as described in the linked videos
  • Substring is used so that the add days function ignore the time element and creates a date.

 

It looks like this:

ExcelDateTime.PNG

You can simply use this expression when you create your HTML Table and you will have sensible date values.

 

Please...

If I answered your question Accept it as a solution ✔️ 

If I helped you out, please give me some Kudos 👍

Thanks 😙

 

View solution in original post

7 REPLIES 7
abm
Super User III
Super User III

Hi @HarshavardhanG 

 

Please have a look at my video tutorials 

 

https://www.youtube.com/watch?v=uFZxXMuLj-E

 

https://www.youtube.com/watch?v=r1LhHU5lXkM

 

If you need any further help please let me know.

 

Thanks

 

 



Did I answer your question? Mark my post as a solution!

If you liked my response, please consider giving it a thumbs up


Proud to be a Flownaut!

Learn more from my blogPower Automate Video Tutorials

View solution in original post

ChadVKealey
Impactful Individual
Impactful Individual

The issue is that date columns in Excel do not store the date the way you think. What they actually store is the number of days since a fixed point in time: 12:00 AM on January 1, 1900. So, to get a date value out of that, you need to use the "addDays" expression or the "add to time" action. See https://powerusers.microsoft.com/t5/General-Power-Automate/Manipulating-Flow-Excel-Date/td-p/365876 for a more detailed explanation and example.

 

For what it's worth, if you can get away with just the date, then I would suggest doing that. Basically the value after the decimal point is a fraction of a full day. If that's "clean" (like .25 would be 1/4 of a day or 6 hours; .5 would be 1/2 of a day or 6 hours; etc.), then it's not too bad. However, if it's not a value that provides an even hour result, it involves performing a few calculations and gets a bit messy. I still haven't figured out a truly reliable way to do it. 

Paulie78
Super User III
Super User III

Here is yet another video that deals with the Date issue in Excel that I published yesterday:

https://www.youtube.com/watch?v=E67YoByn9eA

But your issue is that you have time in there also. Personally I would consider changing the flow that collects form responses and recording the date and time separately. That would then be easier to deal with in this flow.

HarshavardhanG
Helper I
Helper I

I must thank @abm, @ChadVKealey & @Paulie78  for the prompt responses. Much obliged!


I checked all the suggestions and I now need to understand how to convert the Start time & Completion time values from timestamp xxxx.xxx to only date integers (like in the example videos provided by abm & Paulie78).

 

I'm okay if I must deal with the Start time & Completion time as Date only (without time).
My idea is to later filter data for today's date. Time data is of no use for me.

Please suggest how to convert the timestamp to simple dates in PowerAutomate, I do not want to do that in the Excel as i'm worried it might mess up with the live Forms Responses.

Paulie78
Super User III
Super User III

Here is something you could use:

 

addDays
(
  '1899-12-30', int(substring(string(outputs('ExcelDateTime')), 0, 
  indexOf(string(outputs('ExcelDateTime')),'.'))), 'dd-MM-yyyy'
)

 

You would need to either:

  • replace outputs('ExcelDateTime') with your own value retrieved from Excel or..
  • add a compose step before using this expression called "ExcelDateTime"

Explanation:

 

  • The first value in your example is 44065.8074768518.
  • The first part of that is 44065, which represents the day.
  • The addDays function is used as described in the linked videos
  • Substring is used so that the add days function ignore the time element and creates a date.

 

It looks like this:

ExcelDateTime.PNG

You can simply use this expression when you create your HTML Table and you will have sensible date values.

 

Please...

If I answered your question Accept it as a solution ✔️ 

If I helped you out, please give me some Kudos 👍

Thanks 😙

 

View solution in original post

abm
Super User III
Super User III

Hi @HarshavardhanG 

 

You can get the time part from excel sheet. Please see this reply from @ymaglaras 

 

Re: Convert Excel date value - Power Platform Community (microsoft.com)

 

Thanks

 



Did I answer your question? Mark my post as a solution!

If you liked my response, please consider giving it a thumbs up


Proud to be a Flownaut!

Learn more from my blogPower Automate Video Tutorials
HarshavardhanG
Helper I
Helper I

Hi,

 

Extremely sorry for the delay in reply. 

 

Thanks to @abm @Paulie78, i was able to finally get it working.

 

Here's what i did:

 

I added a column to source data which would convert the timestamp into date (integers), which would work with the expressions (provided above) when filtered in PowerAutomate.

 

Thanks a ton!

Helpful resources

Announcements
Process Advisor

Introducing Process Advisor

Check out the new Process Advisor community forum board!

MPA User Group

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group

V3_PVA CAmpaign Carousel.png

Community Challenge - Giveaways!

Participate in the Power Virtual Agents Community Challenge

Carousel 2021 Release Wave 2 Plan 768x460.jpg

2021 Release Wave 2 Plan

Power Platform release plan for the 2021 release wave 2 describes all new features releasing from October 2021 through March 2022.

Carousel April Dunnam Updated 768x460.jpg

Urdu Hindi D365 Bootcamp

Dont miss our very own April Dunnam’s The Developer Guide to the Galaxy! Find out what the Power Platform has to offer for the traditional developer.

Users online (2,459)