#8931 closed (invalid)
Queries on datetimefields return incorrect results in mysql
Reported by: | ElliottM | Owned by: | nobody |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | 1.0 |
Severity: | Keywords: | datetime mysql query | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
In my models, I have a Planet class. One of the fields in Planet is a datetime field called updated. I also have a class called Base that has an o2o to Planet. The Base class also has an FK called "owner"to the Player class.
When I want to find all the bases whose planets were updated in the last six weeks, I should be able to do the following:
six_weeks_ago=datetime.datetime.now()-datetime.timedelta(days=7*6) bases=Base.objects.filter(planet__updated__gt=six_weeks_ago)
That query returns no results. However, if I further refine the query to get only the bases owned by a particular player, like follows:
player_bases=bases.filter(owner__id=22064)
That query returns 18 results, as expected. It think it's pretty obvious that narrowing down the search criteria should reduce the number of results, not increase them, and I know there are Bases that have been updated in the last 6 weeks.
Change History (2)
follow-up: 2 comment:1 by , 16 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
comment:2 by , 16 years ago
Replying to ElliottM:
Turns out this was a problem with mysql and not with django.
Some details of the mysql problem could be helpful for when the next person to hit this searches the tracker, finds this report, and re-opens this as a bug in Django. Is is a mysql bug logged in their bug system? A configuration problem?
Turns out this was a problem with mysql and not with django.