Ver Mensaje Individual
  #9 (permalink)  
Antiguo 13/12/2012, 13:43
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 1 mes
Puntos: 2658
Respuesta: Consulta que haga....

Vamos a ver un par de detalles:
Por un lado, un campo SET es un campo que puede tomar uno de N valores de clave, de acuerdo a una lista de claves definida en la tabla. En ese sentido LIKE no es aplicable, porque una clave no puede ser "parecida a", es igual o no lo es.
Además, el uso de LIKE en la forma que lo haces, sin comodines, es semánticamente equivalente a "=". Pero como LIKE aplica a cadenas de texto, el algoritmo que usa es diferente (internamente), por lo que no es una buena idea utilizar esa cláusula. El "=" es lo que corresponde.
También sucede que la lógica del SQL espera que el primer parámetro de una ecuación lógica en el WHERE sea un campo de las tablas, y no un parámetro de entrada o una constante. Así que en realidad estás escribiendo mal la sentencia.
A esto hay que sumarle que si "inicio" y "fin" son TIME, como dices, debes enviarla como "HH:MM:SS", porque eso es lo que MySQL espera, y además las horas deben ser forzosamente de 00:00:00 a 23:59:59, porque es el formato de un TIME. Si estás tomando las horas en 12/12 (AM/PM), eso no sirve.
También debes tener cuidado con los rangos del BETWEEN. Todos los DBMS (no sólo MySQL) esperan recibir los parámetros como mayor/menor, por lo que si inicio está expresada en AM/PM y las horas representan 06:00:00 PM 03:00:00 AM, el rango buscado nunca dará bien.


Por lo que me describes, la consulta debería ser más o menos así, suponiendo que el parámetro de la variable "dias" fuese una cadena de texto al estilo "Jueves" o algo así:

Código MySQL:
Ver original
  1. FROM empleado
  2.       FROM grupo  
  3.       WHERE dias = '$dias'
  4.       AND (('$inicio' BETWEEN inicio AND fin) OR ('$fin' BETWEEN inicio AND fin)))

Respecto a las imágenes o los links, todavía no has cumplido los 30/30 (30 días en FDW y 30 mensajes), por lo que aún no puedes poner ninguno de ambos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)