django filter筛选月份没有数据
处理方法
- 原因MySQL官网有解释
MySQL安装过程会创建时区表,但默认是不加载的,需要自己手动加载。
加载时区信息不一定是一次性操作,因为该信息会偶尔更改。发生此类更改时,使用旧规则的应用程序将过时,您可能会发现有必要重新加载时区表,以使MySQL服务器使用的信息保持最新。 - 解决方法
1 | mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql |
- 为了保险起见,还是多了解几种查询方式比较好。
时间筛选方式
直接使用__year、__month、__day、__week_day
- 年
1 | User.object.filter(start_time__year=2019) |
- 月
1 | User.object.filter(start_time__month=10) |
- 日
1 | User.object.filter(start_time__day=10) |
- 星期几
1 | User.object.filter(start_time__week_day=1) |
使用__lt、__gt范围
- 大于
1 | import datetime |
- 大于等于
1 | User.object.filter(start_time__gte=now) |
- 小于
1 | User.object.filter(start_time__lt=now) |
- 小于等于
1 | User.object.filter(start_time__lte=now) |
使用__range范围
1 | import datetime |