Django ORM按月month查询数据库(MySQL 8.0

2022-01-27  本文已影响0人  sy813

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、命令末尾没有“;”。

上一篇下一篇

猜你喜欢

热点阅读