#29840: DJANGO query generated by ORM is invalid
-------------------------------------+-------------------------------------
Reporter: Arjunsingh | Owner:
| Arjunsingh
Type: Bug | Status: assigned
Component: Database layer | Version: 2.1
(models, ORM) |
Severity: Normal | Resolution:
Keywords: django orm query | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Description changed by Arjunsingh:
Old description:
> I have a django query which compares datetime like this -
>
> filters = {'order_created_on__gte':'2018-10-10'}
> queryset = model.objects.filter(**filters)
> query = str(queryset.query)
>
> It creates a query - select ... where order_created_on >= 2018-10-10
> 00:00:00
>
> When fired on postgres, it gives an error - syntax error at or near "00".
>
> If I fire the same query in db manually by replacing the date by
> '2018-10-10' it works.
>
> Now I actually tried the following ways, but all queries give the same
> text in the db query
>
> filters = {'order_created_on__gte':datetime(2018-10-10)}
> filters = {'order_created_on__year__gte':2018,
> 'order_created_on__month__gte':10, 'order_created_on__day__gte':10}
>
> Also used the range filter, all of the above insert this text in the
> final query -
>
> where order_created_on >= 2018-10-10 00:00:00
>
> Updating the time zone too didnt have any effect rather than just
> removing a +5:30 from the query.
New description:
I have a django query which compares datetime like this -
filters = {'order_created_on__gte':'2018-10-10'}
queryset = model.objects.filter(**filters)
query = str(queryset.query)
It creates a query - select ... where order_created_on >= 2018-10-10
00:00:00
When fired on postgres, it gives an error - syntax error at or near "00".
If I fire the same query in db manually by replacing the date by
'2018-10-10' it works.
Now I actually tried the following ways, but all queries give the same
text in the db query
filters = {'order_created_on__gte':datetime(2018-10-10)}
filters = {'order_created_on__year__gte':2018,
'order_created_on__month__gte':10, 'order_created_on__day__gte':10}
Also used the range filter, all of the above insert this text in the final
query -
where order_created_on >= 2018-10-10 00:00:00
Updating the time zone too didnt have any effect rather than just removing
a +5:30 from the query.
And the UI over here aint showing '__' used in filters
--
--
Ticket URL: <https://code.djangoproject.com/ticket/29840#comment:2>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/068.2a1f95fc87bdf041973fa103347ffd72%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.