gpt4 book ai didi

python - Django - 从时间戳中获取不同的日期

转载 作者:太空狗 更新时间:2023-10-29 21:01:40 27 4
gpt4 key购买 nike

我正在尝试按日期过滤用户,但直到我可以在数据库中找到用户的第一个和最后一个日期。虽然稍后我可以让我的脚本过滤掉重复项,但我想从一开始就使用 Django 的 distinct 来完成它。因为它显着减少。我试过了

User.objects.values('install_time').distinct().order_by()

但是自install_timetimestamp ,它包括日期和时间(我并不关心)。因此,它唯一过滤掉的是我们可以检索多个用户的安装日期的日期,但不是时间

知道怎么做吗?我正在使用 Django 1.3.1、Postgres 9.0.5 和最新版本的 psycopg2 运行它。

编辑:我忘记添加 install_time 的数据类型:

install_time = models.DateTimeField()

编辑 2:这是 Postgres shell 的一些示例输出,以及对我想要的内容的快速解释:

 2011-09-19 00:00:00
2011-09-11 00:00:00
2011-09-11 00:00:00 <--filtered out by distinct() (same date and time)
2011-10-13 06:38:37.576
2011-10-13 00:00:00 <--NOT filtered out by distinct() (same date but different time)

我知道 Manager.raw , 但宁愿用户 django.db.connection.cursorManager.raw 起直接编写查询返回 RawQuerySet在我看来,这比仅手动编写 SQL 查询并进行迭代更糟糕。

最佳答案

在对较大的数据集进行报告时,itertools.group_by 可能会太慢。在那些情况下,我让 postgres 处理分组:

truncate_date = connection.ops.date_trunc_sql('day','timestamp')
qs = qs.extra({'date':truncate_date})
return qs.values('date').annotate(Sum('amount')).order_by('date')

关于python - Django - 从时间戳中获取不同的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8596856/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com