[RESUELTO] Cálculo entre dos fechas con MySQL y Base

Discute sobre las herramientas de la base de datos
Responder
jopicach
Mensajes: 143
Registrado: Dom Nov 20, 2016 3:24 pm
Ubicación: Almería (España)

[RESUELTO] Cálculo entre dos fechas con MySQL y Base

Mensaje por jopicach »

Hola,

He buscado por foros y web y no he conseguido encontrar la forma de hacer lo siguiente:

Tengo Base conectado a MySQL. El caso es que quiero que me muestre en una consulta separados por columnas la diferencia de años, meses y días entre dos fechas.

Por ejemplo:
Fecha1 31-05-1994
Fecha2 20-02-2020
Debería mostrar la diferencia 25 años 8 meses y 17 días separados en tres columnas.

He intentado instrucciones como TIMESTAMPDIFF y otras pero no lo consigo.

Muchas gracias.
Última edición por jopicach el Vie Feb 21, 2020 4:56 pm, editado 1 vez en total.
LibreOffice versión: 7.0.5.2 (x64) - Windows 10 Pro 64 bits
RMG
Mensajes: 3884
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Cálculo entre dos fechas con MySQL y Base

Mensaje por RMG »

Hola,

Si pones en el buscador del foro de Base, años meses dias, te aparecen ejemplos para hacerlo.

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
jopicach
Mensajes: 143
Registrado: Dom Nov 20, 2016 3:24 pm
Ubicación: Almería (España)

Re: Cálculo entre dos fechas con MySQL y Base

Mensaje por jopicach »

Hola, gracias por responder.

He buscado de nuevo en el foro y no consigo encontrar la respuesta. En la consulta esto es lo que pongo y el resultado que me da:

FLOOR( DATEDIFF( CURDATE( ), `FechaIngreso` ) / 365.25 ) Dando como resultado 25 años transcurridos. Esto está bien, pero me faltarían los meses y días para que el resultado fuese 25 años, 8 meses y 18 días. Esos 8 meses y 18 días son los que no acierto a calcular.
LibreOffice versión: 7.0.5.2 (x64) - Windows 10 Pro 64 bits
jopicach
Mensajes: 143
Registrado: Dom Nov 20, 2016 3:24 pm
Ubicación: Almería (España)

Re: Cálculo entre dos fechas con MySQL y Base

Mensaje por jopicach »

Hola de nuevo.

Finalmente en el foro lo he encontrado. Así quedaría.

FLOOR( ( DATEDIFF( CURDATE( ), `FechaIngreso` ) / 365.25 - FLOOR( DATEDIFF( CURDATE( ), `FechaIngreso` ) / 365.25 ) ) * 12 )

Gracias por la ayuda.

Un saludo.
LibreOffice versión: 7.0.5.2 (x64) - Windows 10 Pro 64 bits
Longi
Mensajes: 810
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: [RESUELTO] Cálculo entre dos fechas con MySQL y Base

Mensaje por Longi »

Buenas!

Solo por meter el dedo en el ojo.....(uno que es muy graciosillo...), con el apaño indicado sirve como aproximación, pero ni todos los meses tienen 30 días, ni todos los años son no bisiestos..., en fin, echa un vistazo a la macro que se cuece por aquí https://forum.openoffice.org/es/forum/v ... ilit=+edad, que es más liada que el SQL, pero al final conseguimos dejarlo clavadito.

Un saludo! ;)
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
jopicach
Mensajes: 143
Registrado: Dom Nov 20, 2016 3:24 pm
Ubicación: Almería (España)

Re: [RESUELTO] Cálculo entre dos fechas con MySQL y Base

Mensaje por jopicach »

Hola!

Gracias por tu respuesta, si es verdad que no es exacto. De ese tema del que pones el enlace saqué la consulta SQL, de hecho la pusiste tu :)
Pondré la macro. Buen trabajo!

Un saludo!
LibreOffice versión: 7.0.5.2 (x64) - Windows 10 Pro 64 bits
Responder