sql - Django:如何通过忽略秒/毫秒差异来区分 DateTimeField
问题描述
在 Django 中,我有一个看起来像这样的模型:
class Foo(models.Model):
...
created = models.DateTimeField(default=None)
...
我尝试像这样查询:
q = Foo.objects.values('created').distinct()
到目前为止一切都很好。
问题是,如果我创建的记录相隔几秒或几毫秒,我想将它们计为一条记录。
因此,只有相隔一分钟创建的查询才会被检索为两个单独的查询。怎么做?谢谢。
编辑: Trunc是一个不错的选择,但没有准确回答这个问题。
举个例子:如果 中有两条记录DB
,在第一条记录中,该created
字段的值为:
2020-02-23 12: 19: 59.000000
在第二个:
2020-02-23 12: 20: 01.000000
Trunc
将检索两条记录,因为它们是两个单独的分钟。
但我只想检索一条记录,因为两条记录之间的时间差不到一分钟..
解决方案
您可以使用 Django Trunc()函数将其截断为所需的分辨率:
from django.db.models.functions import Trunc
Foo.objects.annotate(created_minute=Trunc('created','minute'))
.values('created_minute').distinct()
推荐阅读
- c# - 使用 Entity Framework Core 为具有自动递增主键的 sqlite 表生成类
- sql-server - BCP 在 bat 中生成 csv 文件时跳过了一些行
- css - 如何将菜单子项显示为块
- javascript - 在函数 map() 中反应组件
- python - 如何在单个值中转换带有连字符和逗号的数字范围列表
- java - 如何在 Spring Boot 中使用 log4j 将 INFO 记录到一个文件中并将 ERROR 记录到另一个文件中。
- azure - Azure 函数传递依赖项加载错误
- android - 当 ViewPager 滚动时,Android 同步动画图像视图
- oauth-2.0 - OpenID Connect 的 Swagger 规范
- c# - 使用反射循环遍历类中的结构