Recientemente he entrado en contacto con algunos casos de filtrado y consulta de datos por fecha, y he visto un blog que resume algunos métodos de filtrado de tiempo back-end, aquí también lo resumo y registro para emergencias. Para aplicaciones sencillas, consulte este blog -----> Portal
Compara y filtra con una sola vez
El valor de inicio cambia de acuerdo con diferentes condiciones de filtro.
start = datetime.timedelta(hours=23,minutes=59,seconds=59)
# datetime.timedelta是计算时间差之前的日期,即距离现在23小时59分钟59秒的时间,即一天前
# 查询今天一天之内的数据
models.CountDownSign.objects.filter(date_time_field__gt=start)
# 查询今天一天之内的数据 包括当前那一刻
models.CountDownSign.objects.filter(date_time_field__gte=start)
start = datetime.datetime.now()
# 查询之前的数据
models.CountDownSign.objects.filter(date_time_field__lt=start)
# 查询之前的数据包括当前这一刻
models.CountDownSign.objects.filter(date_time_field__lte=start)
Proyección dentro de un período de tiempo
# 筛选日期在此时间段的数据
obj = models.CountDownSign.objects.filter(date__range=(start, end))
Filtrar por semana, año, etc.
# 按照周几查询
obj = models.CountDownSign.objects.filter(date__week_day=week_day)
# 按照年份查询
obj = models.CountDownSign.objects.filter(date__year=year)
# 按照月份查询
obj = models.CountDownSign.objects.filter(date__month=month)
# 按照某天查询
obj = models.CountDownSign.objects.filter(date__day=day)
Blog de referencia -----> Portal