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.
--
Ticket URL: <https://code.djangoproject.com/ticket/29840>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* owner: nobody => Arjunsingh
* status: new => assigned
--
Ticket URL: <https://code.djangoproject.com/ticket/29840#comment:1>
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>
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.
> And the UI over here aint showing '__' used in filters
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 'double underscore''s used in filters
--
--
Ticket URL: <https://code.djangoproject.com/ticket/29840#comment:3>
* status: assigned => closed
* resolution: => invalid
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.
> And the UI over here aint showing 'double underscore''s used in filters
New description:
I have a django query which compares datetime like this -
{{{#!python
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
{{{#!python
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 -
{{{#!sql
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 'double underscore''s used in filters
--
Comment:
Hello there,
First `str(queryset.query)` is not guaranteed to return a valid SQL
string; it's only meant to be used for debugging purpose.
Next it's not clear if Django is at fault unless you can provide a
traceback and a reproduction case. From my understanding of your report it
seems like you are experiencing these errors when manually running the
debugging SQL provided by `str(queryset.query)` so I'm going to close as
invalid for now.
--
Ticket URL: <https://code.djangoproject.com/ticket/29840#comment:4>