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

SQL que me devuelta el listado de dias entre dos fechas

Estas en el tema de SQL que me devuelta el listado de dias entre dos fechas en el foro de Mysql en Foros del Web. Buenos Días Hermanos: Como se les ocurre que puedo crear un consulta SQL en MYSQL para que me liste todos los días que hay entre ...
  #1 (permalink)  
Antiguo 30/01/2010, 13:15
 
Fecha de Ingreso: diciembre-2009
Mensajes: 8
Antigüedad: 14 años, 4 meses
Puntos: 0
Pregunta SQL que me devuelta el listado de dias entre dos fechas

Buenos Días Hermanos:

Como se les ocurre que puedo crear un consulta SQL en MYSQL para que me liste todos los días que hay entre dos fechas, OJO no estoy buscando el Número de días entre dos fechas, quiero el listado de los dias.

Alguna Orientación?
Gracias.

  #2 (permalink)  
Antiguo 30/01/2010, 15:26
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: SQL que me devuelta el listado de dias entre dos fechas

No hay una consulta que te pueda devolver eso. Las consultas se realizan sobre tablas o sobre funciones y/u operaciones sobre parámetros realizadas en el SELECT, pero no realizan procesos iterativos.
Para hacer lo que quieres necesitas un STORED PROCEDURES que genere esa información, ya que la información en si no existe en tablas o en parámetros.
Lo que necesitas es algo así:
Código MySQL:
Ver original
  1. DELIMITER $$
  2.  
  3. DROP PROCEDURE IF EXISTS `DIAS_PERIODO` $$
  4. CREATE PROCEDURE `DIAS_PERIODO`(IN DESDE DATE, IN HASTA DATE)
  5.   DECLARE FIN INT DEFAULT 0;
  6.   DECLARE DIA DATE;
  7.   SET DIA = DESDE;
  8.   CREATE TEMPORARY TABLE DIAS(FECHA DATE);
  9.   CICLO1: REPEAT
  10.     SET DIA = ADDDATE(DIA, INTERVAL 1 DAY);
  11.     SET FIN = FIN + 1;
  12.     INSERT INTO DIAS VALUES(DIA);
  13.   UNTIL DIA = HASTA END REPEAT CICLO1;
  14.   SELECT * FROM DIAS;
  15. END $$
  16.  
  17. DELIMITER ;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 30/01/2010, 19:19
 
Fecha de Ingreso: diciembre-2009
Mensajes: 8
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: SQL que me devuelta el listado de dias entre dos fechas

Ok ya di de alta este procedimiento almacenado.

Y ahora como lo uso en una consulta?
  #4 (permalink)  
Antiguo 30/01/2010, 20:12
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: SQL que me devuelta el listado de dias entre dos fechas

El SP te devuelve una tabla de fechas. Simplemente ejecutas el SP invocándolo como "CALL DIAS_PERIODO(fechadesde, fechahasta);", donde fechadesde y fechahasta son fechas en formato estandar de SQL (aaaa-mm-dd).
Esto te devolverá una tabla de días entera, incluyendo ambas fechas .
Atención: No es una consulta ni una tabla real, por lo que no se pueden realizar tareas con ella. Sólo puede leerse como resultado de consulta.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 30/01/2010, 20:18
 
Fecha de Ingreso: diciembre-2009
Mensajes: 8
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: SQL que me devuelta el listado de dias entre dos fechas

Fantastico, funciono de maravilla este asunto, Gracias por darme un poco de Luz.

Estamos en Mexico, Guadalajara para lo que necesites.



Gracias.
  #6 (permalink)  
Antiguo 30/01/2010, 20:47
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: SQL que me devuelta el listado de dias entre dos fechas

Me alegro que funcionara todo.

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: dias, dos, fechas, listado, sql
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:16.