我创建了一个django orm查询,我使用 TruncMinute
将秒设置为零。不幸的是,当我运行查询时,结果显示了我的时区。我在查询中附加了结果,也显示了我所需的输出。
我的查询:
MyResul=MyTable.objects.all()
.filter(time__range=(start_date, end_date))
.annotate(time_stamp=TruncMinute('time'))
.values('data', 'time_stamp')
我的结果:
data time_stamp
1 2017-01-04 18:56:00+00:00
我的尝试:
.annotate(time_stamp=TruncMinute('time', tzinfo=None))
我所需的输出:
data time_stamp
1 2017-01-04 18:56:00
假设您将DB中的time
字段定义为DateTimeField()
。因此,您的查询结果将为,
<QuerySet [{'data': 1, 'time_stamp': datetime.datetime(2018, 2, 24, 13, 36, 21, 942863, tzinfo=<UTC>)}]><br>
即time_stamp
键保持一个属于Python的datetime
对象的值。因此,如果您想在任何地方显示数据(HTML,JSON等(,则必须格式化(如果我没错(,。
所以我的答案是,迭代MyResul
和format
datetime
对象
temp_result = MyTable.objects.filter(time__range=(start_date, end_date)).values('data', 'time')
MyResul = []
for result in temp_result:
MyResul.append({
"data": result['data'],
"time_stamp": result['time'].strftime('%Y-%d-%m %H:%M:00')
})
#use 'MyResul'