Como anotar uma diferença de data e hora em dias
eu tenho umBooking
modelo que temstart
eend
campos de data e hora. Quero saber quantos dias uma reserva cobre. Eu posso fazer isso em Python, mas preciso desse valor para mais anotações.
Aqui está o que eu tentei:
In [1]: Booking.objects.annotate(days=F('end')-F('start'))[0].days
Out[1]: datetime.timedelta(16, 50400)
Existem alguns problemas aqui:
Eu quero um número inteiro (ou outro tipo de número que eu possa usar nos cálculos) de dias como saída, não um timedelta. Definir output_field não faz nada de significativo aqui.Minhas somas são baseadas na datavezes. Subtrações como essa, sem remover o tempo, podem levar o número inteiro de dias de folga.Em Python eu faria(end.date() - start.date()).days + 1
. Como posso fazer isso no banco de dados, de preferência através do ORM (por exemplo, funções de banco de dados), mas umRawSQL
seria suficiente para tirar isso da porta?