cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Helper II
Helper II

Re: SQL GetRows OData Date Filter

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.

Highlighted
Super User III
Super User III

Re: SQL GetRows OData Date Filter

Hi @Ajh 

 

Thanks for your reply.

 

StormDate eq '2020-03-15 00:00:00'

 

Here is my Sql test data.

 

image.png

 

image.png

 

Here is my test result which resulted in null

 

image.png

 

Yes it didn't complained about syntax error but the actual query did failed to return the correct results.

 

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 blog
Highlighted
Helper II
Helper II

Re: SQL GetRows OData Date Filter

Hm interesting! You might check the time zone, the screenshot of your raw data is that in UTC?

Highlighted
Super User III
Super User III

Re: SQL GetRows OData Date Filter

I believe so. I entered as dd/mm/yyyy format and it stored as yyyy/mm/dd hh:mm:ss format



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 blog
Highlighted
Helper II
Helper II

Re: SQL GetRows OData Date Filter

I think the default is to use your local time zone. try select stormdate, convert(stormdate,127) UTC from table , just to make sure we know what time zone it's in.

Highlighted
Super User III
Super User III

Re: SQL GetRows OData Date Filter

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.

 
Next changed the query to below
Year(StormDate) ge 2020 and month(StormDate) ge 3 and day(StormDate) ge 15
 
I have got three records which is correct.
 
Could you please tell which data is failing for you when you using the Year, Month and day combination?
 
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 blog
Highlighted
Helper II
Helper II

Re: SQL GetRows OData Date Filter

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.

Highlighted
Helper II
Helper II

Re: SQL GetRows OData Date Filter

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. image.png

Highlighted
Super User III
Super User III

Re: SQL GetRows OData Date Filter

Hi @Ajh 

 

Yes I did some more tests and found out that year, month, date split not going to work? How about stored procedure?  Did you tried using that?

 

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 blog
Highlighted
Helper II
Helper II

Re: SQL GetRows OData Date Filter

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.

Highlighted
Super User III
Super User III

Re: SQL GetRows OData Date Filter

Hi @Ajh 

 

That's fine. Thanks for your replies. Hopefully this will be resolved soon.

 

Interesting findings 😀

 

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 blog
Highlighted
Super User III
Super User III

Re: SQL GetRows OData Date Filter

Hi @Ajh 

 

This worked for me. Tested with Date and it extracts the right records.

 

https://www.svenpauwels.com/microsoft-flow/flow-sql-server-connector-how-to-filter-the-date/

 

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 blog

View solution in original post

Highlighted
Helper II
Helper II

Re: SQL GetRows OData Date Filter

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: 

addDays(utcNow(),-30)

 and so the final thing looks like:

image.png

and evaluates to:

image.png

If anyone from MS ever reads this, PLEASE update your documentation. PLEASE. 

View solution in original post

Highlighted
Super User III
Super User III

Re: SQL GetRows OData Date Filter

Hi @Ajh 

 

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.

 

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 blog
Highlighted
Helper II
Helper II

Re: SQL GetRows OData Date Filter

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.

Highlighted
Regular Visitor

Re: SQL GetRows OData Date Filter

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.

Highlighted
Regular Visitor

Re: SQL GetRows OData Date Filter

Ok - this has been driving me nuts too..eq in the date filter works fine but gt and ge do not. 

 

is it me?

Highlighted
Regular Visitor

Re: SQL GetRows OData Date Filter

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.

 

ScreenHunter_3080 May. 04 17.37.jpg

 

I am using SQL Query in Power Automate to an on premises server. 

 

As follows - 

ScreenHunter_3079 May. 04 17.35.jpg

 

This Fails. 

ScreenHunter_3077 May. 04 17.31.jpg

 

This works.

ScreenHunter_3078 May. 04 17.33.jpg

Any ideas?

Highlighted
Helper II
Helper II

Re: SQL GetRows OData Date Filter

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. 

 

image.png

Highlighted
Advocate II
Advocate II

Re: SQL GetRows OData Date Filter

Hello,

 

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

 

2020-08-24 16_42_28-Settings.png

 

I think it may relate to the version of SQL Server I'm using (2008 R2).


Which SQL Version are you using?

 

Thx,

Helpful resources

Announcements
secondImage

August 2020 CYST Winners!

Check out the winners of the recent 'Can You Solve These?' community challenge!

thirdImage

Experience what's new for Power Automate

Join us for an in-depth look at the new Power Automate features and capabilities at the free Microsoft Business Applications Launch Event.

firstImage

Power Platform 2020 release wave 2 plan

Features releasing from October 2020 through March 2021

thirdimage

Power Automate Community User Group Member Badge

Fill out a quick form to claim your user group badge now!

Top Solution Authors
Top Kudoed Authors
Users online (4,033)