sql entre para DaysOfWeek
Pregunta
Tengo una búsqueda generalizada donde estoy mirando precios medios de los distintos días de la semana. El problema es que no estoy seguro de cómo pedir un rango impar. 1-7 funciona bien, (lunes a domingo), pero si el usuario pasa un domingo a un martes ... es decir, 7-2 no funciona.
1-7 (1,2,3,4,5,6,7) 7-2 (7,1,2)
etc.
¿Qué más puedo pasar un intervalo que es más inteligente o algo además ENTRE?
SELECT item_id, DAYOFWEEK(bookdate) as date, bookdate, AVG(price) AS price
FROM `availables` WHERE (item_id = 16 and DAYOFWEEK(bookdate) BETWEEN 2 AND 7)
GROUP BY DAYOFWEEK(bookdate)
Solución
Tal vez lo que busca es la sintaxis en:
SELECT item_id, DAYOFWEEK(bookdate) as date, bookdate, AVG(price) AS price
FROM `availables` WHERE (item_id = 16 and DAYOFWEEK(bookdate) IN (7,1,2))
GROUP BY DAYOFWEEK(bookdate)
Otros consejos
Hágalo con un 'en' cláusula, como esto: dayofweek (bookdate) en (1,2,7)
Esto también permite la flexibilidad de fechas no continuos (seleccionar registros para el lunes y sólo viernes, por ejemplo)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow