Подтвердить что ты не робот

Дата и время запроса к дате сегодня в Django

Я сохраняю datetime в db для объекта. Я хотел бы запросить у db и выбрать что-нибудь из сегодняшнего date, а не datetime.

Какой самый простой способ сделать это? Это не работает:

invoice_for_today = Invoice.objects.get(user=user, date=date.today())
4b9b3361

Ответ 1

Я помню, что планировалось добавить поиск в поле __date, чтобы сделать это проще, но поскольку он соответствует стандартным способам его выполнения,

today_min = datetime.datetime.combine(datetime.date.today(), datetime.time.min)
today_max = datetime.datetime.combine(datetime.date.today(), datetime.time.max)
Invoice.objects.get(user=user, date__range=(today_min, today_max))

Ответ 2

Вы также можете сделать что-то вроде этого:

today = date.today()
invoice_for_today = Invoice.objects.filter(date__year=today.year, date__month=today.month, date__day=today.day)

Ответ 3

в Джанго <1,9

from django.utils.timezone import datetime #important if using timezones
today = datetime.today()
foo_for_today = Foo.objects.filter(datefield__year=today.year, datefield__month=today.month, datefield__day=today.day)

в Django> 1,9, так как они добавили ключевое слово date

foo_for_today = Foo.objects.filter(datefield__date=datetime.date.today())

Ответ 4

obj = TeachersPlanner.objects.filter(date__startswith=date.today())

Ответ 5

Попробуйте использовать клавиши date__gte и date__lte. Вы можете передать два объекта datetime, обозначающие границы того, что вы хотите сопоставить.

Ответ 6

В Django 1.9 есть новый поиск поля __date, который вы можете использовать:

Entry.objects.filter(pub_date__date = datetime.date(2005, 1, 1)) Entry.objects.filter(pub_date__date__gt = datetime.date(2005, 1, 1))

API Queryset

Ответ 7

Чтобы получить записи из Последние 24 часа, вы можете использовать:

from datetime import datetime, timedelta

Entry.objects.filter(pub_date__gte = datetime.now() - timedelta(days=1))