Лукап second

Лукап second применяется к полям моделей с типом DateTimeField или TimeField и позволяет фильтровать записи по значению секунд (от 0 до 59) в временной части поля. Он используется в цепочке методов фильтрации, таких как filter и exclude, и принимает целочисленное значение секунд для сравнения. Лукап работает на уровне базы данных, что делает его эффективным для выборки записей по временным интервалам.

Синтаксис

pythonModel.objects.filter(field__second=value)

Где field - имя поля модели с типом DateTimeField или TimeField, а value - целое число от 0 до 59, обозначающее секунду для фильтрации.

Пример . С DateTimeField

Пусть у нас есть модель Event с полем start_time типа DateTimeField. Найдем все события, которые начинаются в 30-ю секунду каждой минуты:

pythonfrom myapp.models import Event

events = Event.objects.filter(start_time__second=30)
for event in events:
  print(event.name)

Результат выполнения кода:

python"Morning meeting"
"Afternoon workshop"

Пример . С TimeField

Пусть у нас есть модель Schedule с полем time типа TimeField. Найдем все записи расписания, у которых секунды равны 0 (то есть начало каждой минуты):

pythonfrom myapp.models import Schedule

schedules = Schedule.objects.filter(time__second=0)
for schedule in schedules:
  print(schedule.description)

Результат выполнения кода:

python"Start of hour"
"Quarter past"

Комбинирование с другими лукапами

Лукап second можно комбинировать с другими лукапами, например gte или lte, для поиска записей в диапазоне секунд. Найдем события, которые начинаются с 10-й по 20-ю секунду каждой минуты:

pythonfrom myapp.models import Event

events = Event.objects.filter(
  start_time__second__gte=10,
  start_time__second__lte=20
)
for event in events:
  print(f"{event.name}: {event.start_time}")

Результат выполнения кода:

python"Short break: 2026-09-05 14:15:15"
"Quick update: 2026-09-05 16:20:18"

Смотрите также

  • лукап minute,
    который фильтрует по минутам
  • лукап hour,
    который фильтрует по часам
  • лукап date,
    который фильтрует по дате
  • лукап time,
    который фильтрует по времени