Correct see my reply where I @'d you from Friday ~9:44 AM. There is a screenshot where the flow is successful. You commented that the response was empty, but that's OK, there wasn't any data on that specific day in my system. But the important thing was that the filter worked and didn't throw the JSON error, whereas using ge/gt throws the JSON error.
Thanks for your reply.
StormDate eq '2020-03-15 00:00:00'
Here is my Sql test data.
Here is my test result which resulted in null
Yes it didn't complained about syntax error but the actual query did failed to return the correct results.
Using my test data (see my earlier screenshot) I tried the below query
Year(StormDate) ge 2020 and month(StormDate) ge 3 and day(StormDate) gt 15
ge - Greater or Equal to
gt - Greater than
So I am expecting two results date more than 15
I have got two records which is correct.
I am not using year(), month(), day() notation. That is not an acceptable criteria when querying more than one year of data, it will result in incorrect results. So I'm not even testing that. It will 'work' but the results will not be what is expected.
When you use the eq notation '2010-01-01T00:00:00Z' the hour matters, because it is being compared. So if you're not seeing what you expect using that notation, it is most likely because the data is stored in your table in your local time zone, and the flow is using UTC. For instance, my local time zone is UTC-6, meaning if I insert a record into a DB that is set in my time zone for '2020-03-15', it will display correctly when I am querying and browsing around, but in reality the data is stored as UTC-6, meaning it is actually in the system as '2020-03-15T06:00:00'. So querying for eq '2020-03-15T00:00:00' would work but return no results.
Using year() month() and day() method, if you were to filter on 2019-03-16, your filter would evaluate to year > 2019, month > 3, and day > 16. You would miss data from jan and february as the months would be less than 3, and you would miss data from all months where day is < 15. So instead of 365 days of data, you'd have something like 100.
I'm not going to create a stored procedure for something that is at the core the most basic functionality of any data manipulation and that is supported by the standard that the documentation points to. This needs to just work. I submitted a help ticket to the MS folks, they are reviewing. Will let you know when I get a response.
This worked for me. Tested with Date and it extracts the right records.
JEEEEEZUZ Where did you dig that up!?!?!! It worked!
For all those in the future that need to do this, here is the correct syntax:
StormDate ge date(2020-01-01T00:00:00Z)
To get 30 days of data, I did the following expression inside the purple box:
and so the final thing looks like:
and evaluates to:
If anyone from MS ever reads this, PLEASE update your documentation. PLEASE.
I have got a special search engine 😎 This is one of the post challenged me. I believe it is related to ODATA version. Glad that it did worked for you. Similar test I did earlier and worked perfectly. Thanks to Sven Pauwels for that post.
If you have any more questions please post in this community. There are lots of good knowledge here.
Lol I've been struggling with this for a REALLY long time. Gonna make a big difference in the performance of my flows. Now I need to go back and revisit all of those posts with the stupid loop within a loop work arounds and point them here.
Wish I'd seen the solution to this yesterday!
I ended up finding https://docs.microsoft.com/en-us/odata/webapi/date-and-timeofday-support which helped. They sure do love to make you hunt for information. No idea what version of odata flow/powerautomate even uses.
A bit more clarity.
I am looking for activity on all dates 30 days before today.
If I just use 'eq' in the filter all works, if I change to 'ge' or 'gt' than it fails with a bad JSON comment.
I am using SQL Query in Power Automate to an on premises server.
As follows -
Is the column a date or datetime field? I think sometimes the reason it works for eq and not the others is because it treats it like a string it "ABC" = "ABC", but it doesn't quite know how to treat it like a date. I think it has to do with the OData specification they are using in the backend. I suggest you submit a support ticket to microsoft, they did eventually look at mine that was doing something similar to that and I think they fixed it.
I still have the same issue as depicted above:
ModifiedDateTime eq '2020-07-01' --> Works fine
ModifiedDateTime ge '2020-07-01' --> Fails with below error
I think it may relate to the version of SQL Server I'm using (2008 R2).
Which SQL Version are you using?
Check out the winners of the recent 'Can You Solve These?' community challenge!
Join us for an in-depth look at the new Power Automate features and capabilities at the free Microsoft Business Applications Launch Event.
Features releasing from October 2020 through March 2021
Fill out a quick form to claim your user group badge now!