Django查询集使用时间间隔过滤datetimefield

xmd2e60i  于 2022-12-20  发布在  Go
关注(0)|答案(2)|浏览(187)

我在一个模型中有一个字段:

class Sample(models.Model):
    created_at = models.DateTimeField(auto_now_add=True, blank=True)

这是它保存后的样子:

2022-12-13 13:00:29.84166+08
2022-12-13 14:00:29.84166+08
2022-12-13 15:00:29.84166+08
2022-12-14 13:00:29.84166+08
2022-12-14 14:00:29.84166+08
2022-12-14 15:00:29.84166+08

有没有可能通过时间范围来过滤,也许类似于这个?

Sample.objects.filter(created_at __range=["13:00", "15:00"])

我试过了,但是没用

Sample.objects.filter(created_at__time__range=["13:00", "15:00"])

我想获取不同日期范围在"13:00", "15:00"内的所有数据

qcuzuvrc

qcuzuvrc1#

你可以试试这个:

Sample.objects.filter(
    created_at__time__gte='13:00', created_at__time__lte='15:00'
)
nzkunb0c

nzkunb0c2#

我认为最好将这个DateTime字段划分为DateField和TimeField(都支持auto_now参数),这样会更容易。

相关问题