django orm 查询一个月内每天的数据

查询一个月内每天的查询人数

from django.db.models import Count

data = ApplicationForm.objects.filter(create_time__year=year, create_time__month=month).extra( select= {'create_time': "TO_CHAR(create_time, 'YYYY-MM-DD')", "interview_date": "TO_CHAR(interview_date, 'YYYY-MM-DD HH:MM:SS')"}).values('create_time', 'application_status', 'interview_date').annotate( total_invite_len=Count('create_time')).values('create_time', 'application_status','name', 'interview_date')

# create_time__year, create_time__month, 表示between and 在这年这月范围内的数据
# extra()在orm 里面提交sql语句 TO_CHAR()格式化时间
# 第一个values 是用来分组 按照每天的日期,和该天的申请状态 ,面试日期分组
# annotatle 是为了配合聚合函数 Count()使用统计处每天申请的条数
# 第二个 values 是为了拿到分组后的数据

查询前30天的需要查询的人数

before_month = get_date(30)

invite = InvitationJobInterviewForm.objects.filter(create_time__gte=before_month).extra( select={'create_time': "TO_CHAR(create_time, 'YYYY-MM-DD')"}).values('create_time').annotate( total_invite_len=Count('create_time'), count_email_invite=Count('invite_people_code')).values( 'create_time', 'total_invite_len', 'count_email_invite')
def get_date(days):
date = (datetime.datetime.today() - datetime.timedelta(days=days)).strftime("%Y-%m-%d")
return date

猜你喜欢

转载自www.cnblogs.com/tangda/p/12595745.html