查詢一個月內天天的查詢人數面試
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天的須要查詢的人數sql
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