django使用日期不能查詢數據
使用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
<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使用日期不能查詢數據