Django ORM按月month查询数据库(MySQL 8.0)无数据问题

  • 作者:牛肉盖饭
  • 分类: Django
  • 发表日期:2022-08-30 11:37:04
  • 阅读(1087)
  • 评论数(0)

Django View中查询MySQL数据时会出现无数据返回问题。

如:

queryset= self.filter_queryset(self.get_queryset()).filter(createdtime__year=year).filter(createdtime__month=month)

当用SQLite数据库时不会出现此问题。

登录MySQL后台,show variables like '%time_zone'%; 查询时区配置,显示是“+08:00”,但Django ORM传递的是‘Asia\ShangHai’,MySQL不认识此时区,需下载配置文件解决。

参照: https://dev.mysql.com/doc/refman/8.0/en/time-zone-support.html

自带时区配置文件的Linux系统直接运行 mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql 命令即可。

Windows系统需在 https://dev.mysql.com/downloads/timezones.html 页面下载对应的时区配置文件。

5.7+版本下载timezone_2021e_posix_sql.zip文件,解压到MySQL data目录。

在CMD窗口 输入 mysql -u root -p mysql < file_name 即可。

注意:

1、不要登录MySQL,直接命令行输入命令。

2、file_name为上一步解压的文件的目录,如:C:\mysql-8.0.23-winx64\data\mysql\timezone_posix.sql

3、命令末尾没有“;”。

提交评论

您尚未登录,登陆之后方可评论 登录 or 注册

评论列表

暂无评论