Database returned an invalid datetime value. Are time zone definitions for your database installed?

news/2024/7/5 19:20:53 标签: python, 数据库

在做文章归档的会后,打印结果时报了这个错误

ret = models.Article.objects.filter(user=user).annotate(month=TruncMonth('created_time')).values('month').annotate(
    count=Count('nid')).values_list(
    'month', 'count')
print(r'------>', ret)

原因是时区问题

 

解决方案

在mysql设置时区

mysql> SELECT @@global.time_zone, @@session.time_zone;
+--------------------+---------------------+
| @@global.time_zone | @@session.time_zone |
+--------------------+---------------------+
| SYSTEM             | SYSTEM              |
+--------------------+---------------------+

 

修改django project下的settings.py中市区配置信息:

#USE_TZ = True
# TIME_ZONE = 'UTC'

USE_TZ = False
TIME_ZONE = 'Asia/Shanghai'

 

USE_TZ是统一全球的时间,不夸时区的应用可以把这个设置为False

设置USE_TZ为True的显示格式

<QuerySet [(datetime.datetime(2019, 2, 1, 0, 0, tzinfo=<DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD>), 2)]>

设置USE_TZ为Flase的显示格式

<QuerySet [(datetime.datetime(2019, 2, 1, 0, 0), 2)]>

 

参考:https://www.cnblogs.com/yy3b2007com/p/7601940.html#autoid-0-1-0

USE_TZ = True会自动转成UTC时间,用mysql的时候要注意这个问题。

启用 USE_TZ = True 后,处理时间方面,有两条 “黄金法则”:

  1. 保证存储到数据库中的是 UTC 时间;
  2. 在函数之间传递时间参数时,确保时间已经转换成 UTC 时间;

比如,通常获取当前时间用的是:

import datetime
now = datetime.datetime.now()

启用 USE_TZ = True 后,需要写成:

import datetime 
from django.utils.timezone import utc
utcnow = datetime.datetime.utcnow().replace(tzinfo=utc)

模板

除非应用支持用户设置自己所在的时区,通常我们不需要关心模板的时区问题。模板在展示时间的时候,会使用 settings.TIME_ZONE 中的设置自动把 UTC 时间转成 settings.TIME_ZONE 所在时区的时间渲染。

TIME_ZONE = 'Asia/Shanghai'

 

转载于:https://www.cnblogs.com/lshedward/p/10388779.html


http://www.niftyadmin.cn/n/1147739.html

相关文章

【javascript】高阶函数的应用

文章目录1、什么是高阶函数&#xff1a;2、高阶函数的应用&#xff1a;1. AOP 面向切片编程2. vue 2.0 也会用到 函数劫持&#xff08;AOP切片&#xff09;的思想3. react 里的setState的事务transcation4. 保存变量说到异步肯定要说到回调函数&#xff1a;回调函数是高阶函数的…

2008大连春季房交会落幕 成交量比去年降低

2008大连春季房交会于昨天正式落下帷幕&#xff0c;记者昨天从组委会获悉&#xff0c;本届房交会期间&#xff0c;共有19万人次参观展会&#xff0c;四天共成交商品房1084套&#xff0c;成交二手房226套&#xff0c;商品房成交量比去年春季、秋季两届房交会的1126套和1104套成交…

前端_JavaScript_Vue

Tips(1)项目仪表盘在Vue-cli中,内置项目仪表盘 在本地文件中$vue ui打开(2)创建项目$yarn global add vue/cli $ vue ui vue-router 在SPA中,路由是组件之间的切换,路由模块的本质是建立组件与页面之间的映射关系.SPA的路由是只更新视图而不重新请求页面.根据mode参数不同可以选…

【javascript】高阶函数2 - 异步编程 初

文章目录目标方案1&#xff1a;串行 -不推荐方案2&#xff1a;通过回调函数来解决-很麻烦方案3&#xff1a;after函数的方式 - 相对好一些方案4&#xff1a;发布订阅模式&#xff08;发布 和 订阅&#xff09;引申&#xff1a;观察者模式let fs require(fs); //引入fs api &…

22届大连国际马拉松赛周日鸣枪 五大特点备受瞩目

以“相聚大连&#xff0c;共迎奥运”为主题的第22届“全日空”杯大连国际马拉松赛&#xff0c;将于4月20日&#xff08;本周日&#xff09;7时30分在星海广场百年城雕广场鸣枪开赛。记者从昨日下午召开的赛会新闻发布会上获悉&#xff0c;共有来自世界五大洲36个国家和地区、国…

沙漏

题目1&#xff1a;本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”&#xff0c;要求按下列格式打印 ************ *****所谓“沙漏形状”&#xff0c;是指每行输出奇数个符号&#xff1b;各行符号中心对齐&#xff1b;相邻两行符号数差2&#xff1b;符号数…

俄罗斯计划派猴子前往火星 为宇航员探路

中新网4月15日电 据英国广播公司14日报道&#xff0c;俄罗斯计划派猴子前往火星以便为人类宇航员探路。它们将是首批经受辐射的动物&#xff0c;辐射对飞往火星的宇航员构成了很大的风险。 俄罗斯索契的灵长类动物医学研究所曾多次参加前苏联和俄罗斯的太空项目。研究所所长波…

【Promise】1-简单用法 及 原理

文章目录1.promise 简单用法2.Promise 实现原理3. promise里then的‘发布订阅’4. promise里then的用法promise 有哪些优缺点&#xff1f;优点&#xff1a; 1.可以解决异步嵌套的问题&#xff1b; 2.可以解决多个异步并发问题 缺点 1.promise 基于回调的(要不停的写函数) 2.pro…