首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在考虑当前用户时区的情况下按日期筛选db记录?

如何在考虑当前用户时区的情况下按日期筛选db记录?
EN

Stack Overflow用户
提问于 2016-04-11 07:09:11
回答 1查看 69关注 0票数 0

以DB表示的记录的日期/时间以UTC格式存储。模型是这样的:

代码语言:javascript
代码运行次数:0
运行
复制
class Activity(models.Model):
    deal = models.ForeignKey(Deal)
    user_of_action = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT)
    description = models.TextField()
    affected_fields = jsonfield.JSONField(default={})
    init_time = models.TimeField(default=datetime.datetime.utcnow, editable=False)
    init_date = models.DateField(default=datetime.datetime.utcnow, editable=False)

项目使用Django REST框架,现在需要在考虑时区的特定日期(而不是范围)之前过滤记录。也就是说,在用户的请求时区中,过滤器'init_date‘由AngularJS发送(不太确定确切程度),后端给出相应数据的响应。因此,在任何情况下,正如我所看到的,挑战是一些记录将不会包含在响应中,仅仅因为它们没有过滤器'init_date‘。有什么办法可以达到这种理想的行为吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-11 07:43:46

假设东京的一个用户(UTC+9)正在请求2016-03-17年间的数据。这是一个范围:2016-03-17 00:00:00 +09002016-03-17 23:59:59 +0900。因此,您所需要做的就是在访问数据库之前将这些开始日期和结束日期转换为UTC:2016-03-16 15:00:002016-03-17 14:59:59

编辑:重读你的问题,你的意思是什么?

因此,在任何情况下,正如我所看到的,挑战是一些记录将不会包含在响应中,仅仅因为它们没有过滤器'init_date‘。有什么办法可以达到这种理想的行为吗?

有些记录怎么没有init_date值集?你想要的行为是什么?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36542038

复制
相关文章

相似问题

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