問題描述:
在Django中使用如下代碼:
articles = Article.objects.filter(create_time__date=datetime(year=2020, month=5, day=28))
結果出現:
<QuerySet []>
注意:因爲默認情況下MySQL
的表中是沒有存儲時區相關的信息的。因此我們需要下載一些時區表的文件,然後添加到Mysql
的配置路徑中。
解決辦法:
- Mysql5.6版本的解決方法:
如果你用的是
windows
操作系統。那麼在https://dev.mysql.com/downloads/timezones.html下載timezone_2020a_posix.zip - POSIX standard。然後將下載下來的文件解壓之後,將所有文件拷貝到C:\ProgramData\MySQL\MySQL Server 5.7\Data\mysql
中,如果提示文件名重複,那麼選擇覆蓋即可。 如果用的是linux
或者mac
系統,那麼在命令行中執行以下命令:mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -D mysql -u root -p
,然後輸入密碼,從系統中加載時區文件更新到mysql
中。
- Mysql8.0版本的解決方法:
如果你用的是
windows
操作系統。那麼在https://dev.mysql.com/downloads/timezones.html下載timezone_2020a_posix_sql.zip - POSIX standard。然後將下載下來的文件解壓並拷貝到C:\Program Files\MySQL\MySQL Server 8.0\bin
中,在該文件夾中打開命令窗口,輸入mysql -u root -p mysql < timezone_posix.sql,然後輸入密碼。timezone_posix.sql就是解壓包中的文件。如果用的是linux
或者mac
系統可以參考MySql官網關於時區的配置。
參考網站:https://dev.mysql.com/doc/refman/8.0/en/time-zone-support.html#time-zone-installation