2012-05-21 23 views
6

con _range se puede hacer una entre consultaDjango seleccionar entre DB fechas

start_date = datetime.date(2005, 1, 1) 
end_date = datetime.date(2005, 3, 31) 
Entry.objects.filter(pub_date__range=(start_date, end_date)) 

Puede usar esta opción si tiene 2 fechas y desea comprobar si la fecha en het DB es entre esas 2 fechas

en mi caso tengo 1 fecha y quiero comprobar si esa fecha es entre mis 2 campos de fecha en dB

class Deals(models.Model): 
    #stuff 
    starting = models.DateField() 
    ending = models.Datefield() 

¿Cómo puedo hacer una consulta entre a comprobar si month = '2010-01-01' está entre inicio y fin

Editar

tengo ofertas en la mesa de ofertas. Quiero saber si hay un acuerdo en enero de 2010 (2010-01-01), febrero de 2010 (2010-02-01), etc

gusta esta

SELECT * FROM deals WHERE '2010-01-01' BETWEEN starting AND ending 
+0

La comprobación de si un mes se encuentra entre un inicio y un final en particular no requiere una consulta. ¿De verdad quieres decir que quieres encontrar las instancias 'Fechas' donde' mes' está entre el inicio y el final? –

+0

Edité el tema. Necesito encontrar ofertas que se aplican para cada mes de un cierto año. Espero que esté claro – nelsonvarela

Respuesta

11
Deals.objects.filter(starting__gte=mydate, ending__lte=mydate) 

Doc es here

+0

Así que no tengo que usar entre. ¡Gracias! – nelsonvarela

+0

__range podría ser útil aquí https://docs.djangoproject.com/en/1.7/ref/models/querysets/#range – Zippp