Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Obtener Dias entre Fechas

Estas en el tema de Obtener Dias entre Fechas en el foro de Mysql en Foros del Web. Hola Foreros necesito hacer los iguiente ojala me puedan ayudar Necesito generar como resultados de una consulta o funcion las fechas que se encuentran entre ...
  #1 (permalink)  
Antiguo 17/11/2008, 08:48
 
Fecha de Ingreso: agosto-2005
Mensajes: 25
Antigüedad: 18 años, 8 meses
Puntos: 0
Obtener Dias entre Fechas

Hola Foreros

necesito hacer los iguiente ojala me puedan ayudar

Necesito generar como resultados de una consulta o funcion las fechas que se encuentran entre 2 fechas me explico

Por ejemplo entrego como parametro la fecha de inicio y termino y me devuelve los dias

mifuncion('15-11-2008',18-11-2008')
y como resultado seria

15-11-2008
16-11-2008
17-11-2008
18-11-2008


Alguna idea Graxx
  #2 (permalink)  
Antiguo 17/11/2008, 12:36
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Obtener Dias entre Fechas

Creo que la base de datos no puede ayudarte, si tú no has introducido todas esas fechas del rango. Para hacer eso en la base de datos, deberías tener todas esas fechas metidas en una tabla específica o haberlas introducido en tu tabla. Lo que no tengas, no te lo mostrará. Pero no te apures, con programación, lo harás en un 'pis-pas'. Pide ayuda en el foro de programación de tu programa: es algo muy sencillo.
  #3 (permalink)  
Antiguo 17/11/2008, 17:04
 
Fecha de Ingreso: agosto-2005
Mensajes: 25
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Obtener Dias entre Fechas

Cita:
Iniciado por jurena Ver Mensaje
Creo que la base de datos no puede ayudarte, si tú no has introducido todas esas fechas del rango. Para hacer eso en la base de datos, deberías tener todas esas fechas metidas en una tabla específica o haberlas introducido en tu tabla. Lo que no tengas, no te lo mostrará. Pero no te apures, con programación, lo harás en un 'pis-pas'. Pide ayuda en el foro de programación de tu programa: es algo muy sencillo.
Eso me temia ... queria darle el trabajo a la base de datos mmm voy a tener q programarlo en 2 lenguajes ;(

Graxx
  #4 (permalink)  
Antiguo 17/11/2008, 18:58
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Obtener Dias entre Fechas

Bueno, en realidad existe una posibilidad, pero implica crear un Store Procedure y dentro de el una tabla temporal (como la tabla temporal tiene existencia sólo dentro del SP, desaparece después de su ejecución).
El esquema sería mas o menos así:
Código sql:
Ver original
  1. CREATE PROCEDURE `REPORTADOSXDIA`(IN DESDE DATE, IN HASTA DATE)
  2. BEGIN
  3.   DECLARE DIA INT DEFAULT 0;
  4.   /* Carga de días posibles */
  5.   DROP TABLE IF EXISTS DIAS;
  6.   CREATE TEMPORARY TABLE DIAS(FECHA DATE);
  7.   SET DIA = 0;
  8.   REPEAT
  9.     INSERT INTO DIAS(FECHA) VALUES(DATE_ADD(DATE(NOW()),INTERVAL DIA DAY));
  10.     SET DIA = DIA+1;
  11.   UNTIL DESDE = HASTA END REPEAT CICLO1;
  12.   /* En este punto existe una tabla con N días entre DESDE y HASTA*/
  13.   /* Lo que debe seguir sería el SELECT */
  14.   SELECT FECHA FROM DIAS;
  15. END

Cuando se llama este SP, se lo debe llamar como una sentencia comñun y corriente, de modo de usarlo para recuperar una tabla directamente.
La salvedad, es que esa tabla no es actualizables, es de lectura simple y no puedo asegurarte que responda a una lectura secuencial registro a registro. No lo he intentado.
Yo uso un SP similar para que me devuelva ul reporte que incluya valores en cero de todos los ítems que no se han ejecutado en una fecha.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:09.