gpt4 book ai didi

Django Queryset-仅从查询中的datetime字段中提取日期(在.value()内部)

转载 作者:行者123 更新时间:2023-12-04 04:59:43 24 4
gpt4 key购买 nike

我想从Django查询中提取一些特定的列

models.py

class table
id = models.IntegerField(primaryKey= True)
date = models.DatetimeField()
address = models.CharField(max_length=50)
city = models.CharField(max_length=20)
cityid = models.IntegerField(20)

这就是我目前用于查询的内容
obj = table.objects.filter(date__range(start,end)).values('id','date','address','city','date').annotate(count= Count('cityid')).order_by('date','-count')

我希望有一个与此类似的SQL查询
 select DATE(date), id,address,city, COUNT(cityid) as count from table where date between "start" and "end" group by DATE(date), address,id, city order by DATE(date) ASC,count DESC;

最佳答案

至少在Django 1.10.5中,您可以使用类似这样的东西,而不需要extraRawSQL:

from django.db.models.functions import Cast
from django.db.models.fields import DateField
table.objects.annotate(date_only=Cast('date', DateField()))

为了进行过滤,您可以使用 date查找( https://docs.djangoproject.com/en/1.11/ref/models/querysets/#date):
table.objects.filter(date__date__range=(start, end))

关于Django Queryset-仅从查询中的datetime字段中提取日期(在.value()内部),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18457364/

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