首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用DatetimeField列在Django中每小时获得最后一个对象?

如何使用DatetimeField列在Django中每小时获得最后一个对象?
EN

Stack Overflow用户
提问于 2018-08-31 09:33:10
回答 1查看 910关注 0票数 2

我一直在执行从一个名为“Feeds”的表中过滤值的任务,

每10分钟将行插入到系统中。即。每小时6行,我将其日期时间存储在一个名为时间戳的列中。

我想过滤过去7天中每一小时的最后一行。

这是我的密码。

代码语言:javascript
复制
class Feeds(models.Model):
    value = models.FloatField()
    timestamp = models.DateTimeField(auto_now_add=True)`

请帮我解决这个问题。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-31 10:25:03

获取最后7天的对象,然后从每小时获取对象,并找到具有最大日期时间值的对象,排除其他对象。

代码语言:javascript
复制
d = datetime.now() - timedelta(days=7)
feeds = Feeds.objects.filter(timestamp__gte=d)
d = d.replace(minute=0, second=0, microsecond=0)
while d <= datetime.now():
    temp = feeds.filter(timestamp__range=(d, d + timedelta(hours=1)))
    if temp:
        temp = temp.exclude(timestamp=temp.all().order_by('-timestamp')[0].timestamp)
        for t in temp:
            feeds = feeds.exclude(timestamp=t.timestamp)            
    d += timedelta(hours=1)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52112496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档