微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Django |查询时Datetime的时间发生变化

如何解决Django |查询时Datetime的时间发生变化

我正在尝试在一系列日期之间查询。查看Django生成查询,我发现它并没有花费时间datetime

这是我的代码

        tz = pytz.timezone('Europe/London')
        today = datetime.Now(tz=tz)
        week_end = today.replace(hour=23,minute=59,second=59,microsecond=0)
        day_start = today - timedelta(6)
        week_start = day_start.replace(hour=0,minute=0,second=0,microsecond=0)

        ultimas_transferencias = Transferencia.objects.filter(fecha__gte=week_start,fecha__lte=week_end,estatus__id=1)\
            .extra(select={'dia': 'DAY(fecha)'}).order_by().values('dia') \
            .annotate(total=Sum('monto')).values('dia','total').annotate(numero=Count('pk')).values('dia','total','numero')
        print(ultimas_transferencias.query)
        return JsonResponse({'data': list(ultimas_transferencias)})

这是查询

SELECT (DAY(fecha)) AS `dia`,SUM(`remesasapp_transferencia`.`monto`) AS `total`,COUNT(`remesasapp_transferencia`.`id`) AS `numero` 
FROM `remesasapp_transferencia` 
WHERE (`remesasapp_transferencia`.`estatus_id` = 1 AND 
`remesasapp_transferencia`.`fecha` >= 2020-08-23 23:00:00 
AND `remesasapp_transferencia`.`fecha` <= 2020-08-30 22:59:59) GROUP BY (DAY(fecha)) ORDER BY NULL

请注意,时间显示 2020-08-23 23:00:00 ,而不是 2020-08-23 00:00:00

解决方法

我找到了解决方案。我不是使用today = datetime.now(tz=tz)而是今天使用了= timezone.now()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?