Comunidad de diseño web y desarrollo en internet online

Averiguar la mayor diferencia de fechas entre registros de una tabla

Citar            
MensajeEscrito el 05 Jul 2016 05:59 am
Hola de nuevo, tengo una tabla en la que voy almacenando en cada entrada la fecha de la inserción del registro en formato CURDATE(), el problema que tengo es que no sé cómo hacer para mostrar la mayor diferencia que haya entre los registros, o sea que si el registro A es de fecha 01-04-2016 y el B es del 25-05-2016 y no hay ningún otra diferencia mayor que ésta, me muestre 55 días. Sé que con DATEDIFF se puede hacer pero lo que no sé es cómo lo hago para recorrer toda la Bd restando A de B, B de C, C de D,...
¿Puede ayudarme alguien? Gracias. :(

Por solilopi

16 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 08 Jul 2016 06:01 am

Por conectart

Claber

128 de clabLevel



 

ceo

chrome
Citar            
MensajeEscrito el 08 Jul 2016 09:50 am

conectart escribió:

Se me ocurre, que saques la fecha MAX y la MIN y las restes, no?

Un saludo
David
paginas web economicas

Hola, creo que no has entendido lo que necesito, tengo que ir comparando todos los registros de la Bd de la forma: 2 con 1, 3 con 2, 4 con 3,... para averiguar cual es la mayor diferencia de tiempos.

Por solilopi

16 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 08 Jul 2016 09:59 am
si te he entendido, o eso creo. Pienso, que no necesitas comparar todos con todos. Si sacas la fecha menor, y sacas la fecha mayor, y después miras la diferencia entre ambas, ya tendrías justo lo que buscas. No necesitas comparar todos con todos.

Por conectart

Claber

128 de clabLevel



 

ceo

chrome
Citar            
MensajeEscrito el 08 Jul 2016 03:49 pm

conectart escribió:

si te he entendido, o eso creo. Pienso, que no necesitas comparar todos con todos. Si sacas la fecha menor, y sacas la fecha mayor, y después miras la diferencia entre ambas, ya tendrías justo lo que buscas. No necesitas comparar todos con todos.

Hola, perdona pero no me has entendido, lo que pretendo es saber cual ha sido el intervalo mayor entre dos registros consecutivos, o sea, que si entre el 85 y el 86 hay 23 días y luego entre el 121 y el 122 hay 41 el dato será el 41.

Por solilopi

16 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 08 Jul 2016 04:21 pm
Es que lo de consecutivos, lo acabas de decir ahora.

Pienso algo, y te digo.

Por conectart

Claber

128 de clabLevel



 

ceo

chrome
Citar            
MensajeEscrito el 12 Jul 2016 04:21 pm
Hola de nuevo, he cambiado y en vez de hacer un procedimiento he hecho una función:
CREATE DEFINER=`root`@`localhost` FUNCTION `dias_sin`() RETURNS int(11)
BEGIN

declare contador integer default 1;
declare time_min date;
declare time_max date;
declare dif int;
declare resultado int;
declare ultimo int;
select max(salida_num) into ultimo from datos;

while contador <= ultimo do

select fecha into time_min from datos where salida_num = contador;
select fecha into time_max from datos where salida_num = contador+1;

set dif = time_max - time_min;

if resultado < dif then

set resultado = dif;

end if;

set contador = contador+1;
set time_min = 0;
set time_max = 0;

end while;

RETURN resultado;
END
el problema es que me devuelve un número sin sentido. ¿Puede ayudarme alguien?. Gracias.

Por solilopi

16 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.