Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/07/2012, 16:07
Avatar de PIRRUMAN
PIRRUMAN
 
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 3 meses
Puntos: 53
Query de fechas

Saludos,
He estado probando un query pero no he logrado hacer que me arooje los resultados deseado,

tengo una tabla con los siguientes datos
Código MySQL:
Ver original
  1. intActivo   dtdFechainicial     dtdFechaFinal   intFKIDCentroCosto  intPorcentaje
  2.         1   2012-07-03  2012-07-05  1   99
  3.         0   2012-07-07  0000-00-00  1   1
  4.         0   2012-07-07  0000-00-00  2   33
estoy intentando crear una consulta para evitar introducir fechas del mismo dia del mismo centro de costo por ejemplo

con estas fechas podria insertar en el centro de costo numero 2
fecha inicial:2012-07-01
fecha final:2012-07-06
por que no se empalmarian las fechas

pero con estas nose deberia insertar
fecha inicial:2012-07-01
fecha final:2012-07-07
por que la fecha final estaria en el mismo dia de la fecha inicial del centro de costo actual
para evitar insertarlo hago una consulta donde si encuentra el centro de costo numero 2 dentro del rango de esas fechas me arroje un registro
Código MySQL:
Ver original
  1. //EJEMPLO DE ERROR POR QUE ME ARROJA UN REGISTRO
  2. fecha incial :2012-07-01
  3. fecha final:2012-07-07
  4. SELECT intActivo,dtdFechainicial,dtdFechaFinal,intFKIDCentroCosto,intPorcentaje FROM tblHistoricoCentroCostos
  5. WHERE intFKIDCentroCosto='2'
  6. AND (dtdFechaInicial<='2012-07-01' OR dtdFechaInicial<='2012-07-07')
Código MySQL:
Ver original
  1. //EJEMPLO DE ACIERTO POR QUE NO REGRESA UN REGISTRO
  2. fecha incial :2012-07-01
  3. fecha final:2012-07-06
  4. SELECT intActivo,dtdFechainicial,dtdFechaFinal,intFKIDCentroCosto,intPorcentaje FROM tblHistoricoCentroCostos
  5. WHERE intFKIDCentroCosto='2'
  6. AND (dtdFechaInicial<='2012-07-01' OR dtdFechaInicial<='2012-07-06')

El detalle es que pueden ingresar vacio en la fecha final lo que indica que es indefinido el tiempo o infinito, y es lo que me causa conflicto por ejemplo en la que no deberia pasar osea arrojarme un registro es:
Código MySQL:
Ver original
  1. fecha incial :2012-07-01
  2. fecha final:0000-00-00
  3. SELECT intActivo,dtdFechainicial,dtdFechaFinal,intFKIDCentroCosto,intPorcentaje FROM tblHistoricoCentroCostos
  4. WHERE intFKIDCentroCosto='2'
  5. AND intFKIDEmpleado='279'
  6. AND (dtdFechaInicial<='2012-07-01' OR dtdFechaInicial<='0000-00-00')
no quisiera hacer un hardcode como por ejemplo si viene 0000-00-00 colocar 3000-00-00 y asi hacer que funcione , alguno tiene otra solucion ?
de antemano gracias
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”