#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.

Reply via email to