1. 程式人生 > >django使用日期不能查詢數據

django使用日期不能查詢數據

lte post 青花瓷 月份 其它 配置 objects 有關 mar

使用django+mysql組合,在使用日期查詢數據時,只能根據年份來查詢,不能根據月份和日期來查詢

>>> from blog.models import Post

>>> Post.objects.all()
<QuerySet [<Post: 上海一九四三>, <Post: 項脊軒誌>, <Post: 測試markdown>]>
>>> Post.objects.filter(created_time__year = ‘2017‘).order_by(‘-created_time‘)
<QuerySet [<Post: 測試markdown>, <Post: 項脊軒誌>, <Post: 上海一九四三>, <Post: 青花瓷>]>
>>> Post.objects.filter(created_time__year = ‘2017‘, created_time__month

= ‘8‘).order_by(‘-created_time‘)
<QuerySet []>

解決辦法:

在settings.py裏面,修改USE_TZ設置為False。

技術分享

不用擔心,這樣做並不會對世間造成影響:

在Django的配置文件 技術分享settings.py 中,有兩個配置參數是跟時間與時區有關的,分別是 TIME_ZONE 和 USE_TZ 如果 USE_TZ 設置為 True 時,Django會使用系統默認設置的時區,即 America/Chicago ,此時的 TIME_ZONE 不管有沒有設置都不起作用。 如果 USE_TZ 設置為 False ,而 TIME_ZONE 設置為 None ,則Django還是會使用默認的 America/Chicago 時間。若 TIME_ZONE 設置為其它時區的話,則還要分情況,如果是Windows系統,則 TIME_ZONE 設置是沒用的,Django會使用本機的時間。如果為其他系統,則使用該時區的時間,入設置 USE_TZ = False , TIME_ZONE = ‘Asia/Shanghai‘ , 則使用上海的 UTC 時間。

django使用日期不能查詢數據