22 Votos

MySQL: Obtener el Número de Días entre dos Timestamps

Pregunta de Invitado | 15/07/2021 a las 13:20

Me gustaría encontrar una forma de MySQL para determinar cuántos días hay entre dos tiempos especificados.

Entonces, tengo una marca de tiempo (timestamp) o una fecha y me gustaría compararla con otra fecha para calcular la diferencia horaria. Si es posible, se debe considerar que los meses tienen un número variable de días.

¿Cómo puedo implementar eso en MySQL?

ResponderPositivoNegativo
2Mejor Respuesta2 Votos

Para este propósito, MySQL proporciona la función DATEDIFF(). Puede pasar 2 fechas a esta función y recuperarás la diferencia horaria entre ellas.

Por ejemplo así:

SELECT DATEDIFF('2031-01-01', '2021-01-01') AS d;

Aquí, estamos calculando el número de días entre el 1 de enero de 2021 y el 1 de enero de 2031. Para asegurar que el resultado sea positivo, la primera fecha debe ser mayor que la segunda. De lo contrario, obtendremos un valor negativo.

Por supuesto, también podemos obtener directamente la fecha de una tabla:

SELECT id, DATEDIFF('2021-01-01', dat) FROM tab;

En este ejemplo, estamos leyendo los registros de la tabla "tab". En esta tabla, también está la columna "dat" en la que se almacenan los datos. Aquí nos gustaría obtener la diferencia horaria entre esta fecha y el 1 de enero de 2021.

En lugar de usar una fecha fija, también podemos usar la fecha actual usando CURDATE():

SELECT DATEDIFF('2031-01-01', CURDATE()) AS d;

Esta consulta nos dice cuántos días hay entre ahora y el 1 de enero de 2031.

Si quisiéramos especificar la antigüedad de los registros en nuestra base de datos, también podemos hacer uso de CURDATE() y combinar ambos:

SELECT id, DATEDIFF(CURATE(), dat) FROM tab;

Por cierto, también existe la función TIMEDIFF() con la que podemos calcular la diferencia entre dos marcas de tiempo de forma más precisa.
15/07/2021 a las 21:22

ResponderPositivo Negativo
Responder

Temas Relacionados

Te amo - En todos los idiomas

Información | 0 Comentarios

Aviso Importante

Por favor tenga en cuenta: Las contribuciones publicadas en askingbox.com son contribuciones de los usuarios y no deben reemplazar el asesoramiento profesional. No son verificados por independientes y no reflejan necesariamente la opinión de askingbox.com. Aprende más.

Participar

Haga su propia pregunta o escriba su propio artículo en askingbox.com. He aquí cómo.