#24189 closed Bug (invalid)
Filtering by month or day doesn't work with MySQL
| Reported by: | Unai Zalakain | Owned by: | nobody |
|---|---|---|---|
| Component: | Database layer (models, ORM) | Version: | 1.7 |
| Severity: | Normal | Keywords: | datetime, timezone, date, month, day |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
While filtering by year works, filtering by month or by date doesn't:
In [1]: from planner.tasks.models import KeyDate
In [2]: KeyDate.objects.all()
Out[2]: [<KeyDate: Revision>, <KeyDate: Production>]
In [3]: KeyDate.objects.all()[0].date
Out[3]: datetime.datetime(2015, 1, 20, 14, 1, 20, tzinfo=<UTC>)
In [4]: KeyDate.objects.filter(date__year=2015)
Out[4]: [<KeyDate: Revision>, <KeyDate: Production>]
In [5]: KeyDate.objects.filter(date__month=1)
Out[5]: []
If I switch to SQLite everything works as expected.
Change History (3)
comment:1 by , 11 years ago
| Resolution: | → invalid |
|---|---|
| Status: | new → closed |
follow-up: 3 comment:2 by , 11 years ago
MySQL thinks it's a good idea to return invalid results silently when something goes wrong. I'm sorry to hear that you have to use it.
comment:3 by , 11 years ago
Replying to aaugustin:
MySQL thinks it's a good idea to return invalid results silently when something goes wrong. I'm sorry to hear that you have to use it.
I'm sorry too, believe me, it's the first time I had to use MySQL and, compared to using PostgreSQL it's not a pleasant experience ... I hope we will eventually change to PostgreSQL...
After injecting timezone definitions it didn't work neither... until I restarted the MySQL server.