Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   SQL que me devuelta el listado de dias entre dos fechas (https://www.clubdelphi.com/foros/showthread.php?t=66068)

flystar 30-01-2010 20:10:09

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 días.

Alguna Orientación?
Gracias.

jhonny 30-01-2010 20:34:13

Prueba con un:

Código SQL [-]
SELECT EXTRACT(DAY FROM CAMPO_FECHA)
WHERE CAMPO_FECHA BETWEEN FECHA_INICIAL AND FECHA_FINAL;

flystar 30-01-2010 20:50:45

Me falto decir que...
 
Me falto decir que

El detalle es que en la consulta no hay una TABLA de referencia, quiero que el SQL me devuelva el listado de dias sin hacer referencia a ninguna tabla

cloayza 31-01-2010 03:34:31

Amigo talvez te sirva este codigo, lo escribi (Firebird) hace algun tiempo...

Es un procedimiento almacenado.

Como llamarlo:

SELECT * FROM Dias_Entre_Fechas(Fecha_Inicial, Fecha_Final)

Retorna
DAY$NUMBER DAY$NAME DAY$DATE
--------------------------------------
1 MARTES 12/01/2010
2 MIERCOLES 13/01/2010
3 JUEVES 14/01/2010
4 VIERNES 15/01/2010

Código SQL [-]
CREATE PROCEDURE DIAS_ENTRE_FECHAS (
    first$date DATE,
    last$date DATE)
RETURNS (
    day$number INTEGEr,
    day$name CHAR(10),
    day$date DATE )
AS
DECLARE VARIABLE day$week INTEGER;
begin
  /* Procedure Text */

     day$date= FIRST$DATE;
     day$number = 0;

     while (day$date <= LAST$DATE) DO
     begin
          day$week=extract(weekday from day$date);

          IF (day$week=0) THEN
             day$name='DOMINGO';
          ELSE IF (day$week=1) THEN
             day$name='LUNES';
          ELSE IF (day$week=2) THEN
             day$name='MARTES';
          ELSE IF (day$week=3) THEN
             day$name='MIERCOLES';
          ELSE IF (day$week=4) THEN
             day$name='JUEVES';
          ELSE IF (day$week=5) THEN
             day$name='VIERNES';
          ELSE IF (day$week=6) THEN
             day$name='SABADO';

          day$number    = day$number+1;
          suspend;

          day$date = day$date+1;
     end


end

Lo puedes adaptar a MySQL...Espero te sirva...

Saludos desde
Concepcion-Chile


La franja horaria es GMT +2. Ahora son las 21:39:53.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi