Cómo anotar una diferencia de fecha y hora en días
tengo unBooking
modelo que tienestart
yend
campos de fecha y hora. Quiero saber cuántos días cubre una reserva. Puedo hacer esto en Python pero necesito este valor para otras anotaciones.
Esto es lo que he intentado:
In [1]: Booking.objects.annotate(days=F('end')-F('start'))[0].days
Out[1]: datetime.timedelta(16, 50400)
Hay algunos problemas aquí:
Quiero un entero (u otro tipo de número que pueda usar en los cálculos) de días como salida, no un timedelta. Establecer output_field no hace nada significativo aquí.Mis sumas se basan en la fecha.veces. Restas como esta, sin eliminar el tiempo, pueden llevar a que se descarte la cantidad total de días.En Python haría(end.date() - start.date()).days + 1
. ¿Cómo puedo hacer eso en la base de datos, preferiblemente a través del ORM (por ejemplo, funciones de la base de datos), pero unRawSQL
bastaría para sacar esto por la puerta?