Формат даты в Django views complex sql
Мне нужно создать select к базе данных, где у меня есть строки с датой в таком формате:
2020-08-21 10:43:26.000000
И мне нужно изменить эту дату следующим образом:
Месяц-День (например, Jan-02)
После этого столбец группируется по... Я пробую многое из того, что нашел здесь, но ничего не работает... :/
Сейчас мой запрос выглядит следующим образом:
hist_data = Vpnhistory.objects.filter(bytes_sent__gt=0)
hist_data = hist_data.filter(end_time__gte=datetime.now()-timedelta(days=14))
hist_data = hist_data.values('end_time', 'bytes_sent')
hist_data = hist_data.annotate(summ=Sum('bytes_sent'), end_time_str=DateToChar(F('end_time'), Value('MM-DD')))
А класс DateToChar выглядит так в моем models.py:
class DateToChar(models.Func):
arity = 2
function = 'to_char'
output_field = models.CharField()
Datum по-прежнему возвращает полный формат времени даты... :/
Django already has some logic to do this without converting this to a string. You can work with TruncDate
[Django-doc], and then thus process this with:
from django.db.models import Sum
from django.db.models.functions import TruncDate, Now
hist_data = Vpnhistory.objects.filter(
bytes_sent__gt=0, end_time__gte=Now()-timedelta(days=14)
).values(date=TruncDate('end_time')).annotate(
summ=Sum('bytes_sent')
).order_by('date')