lunes, 28 de diciembre de 2015

Sumar y restar fechas con MySQL

Sumar y restar fechas con MySQL



Posiblemente en más de una ocasión habréis tenido que hacer consultas del estilo: “Contratos que vencen el mes que viene”, “Usuarios dados de baja el último mes”, “Noticias publicadas los últimos 10 días”… o similares para las que sueles necesitar realizar operaciones simples entre fechas.
Esta entrada es un pequeño recordatorio de las siguientes funciones de MySQL:
  • CURDATE(): Que nos devuelve la fecha actual.
  • DATE_ADD() y DATE_SUB(): Para sumar y restar fechas respectivamente.
Gracias a ellas podemos hacer consultas similares a las anteriores de forma directa. Veamos algunos ejemplos:
Contratos que terminan dentro de un mes
SELECT *
FROM contratos
WHERE finalizacion >= CURDATE() 
AND finalizacion <= DATE_ADD(CURDATE(), INTERVAL 30 DAY)
Contratos que terminaron la última semana:
SELECT *
FROM contratos
WHERE finalizacion <= CURDATE() 
AND finalizacion >= DATE_SUB(CURDATE(), INTERVAL 1 WEEK)
Hay muchas más funciones relacionadas con el tiempo y las fechas que os pueden sacar de un apuro y simplificaros mucho la vida. Os recuerdo que suele ser mucho mejor hacer una buena consulta que tratar posteriormente los datos que nos devuelve con la siguiente capa de nuestra aplicación. Tenéis la referencia en la web oficial de MySQL.

Fuente: http://www.linuxhispano.net/2010/07/06/suma-y-resta-de-fechas-con-mysql/

No hay comentarios:

Publicar un comentario

Jesús Moreno - Ingeniero Ténico Informático - consultor Informático

Hola, soy Jesús Moreno Ingeniero Técnico Informático en sistemas por la US y propietario de éste blog. Mi trabajo en los ultimos años se ...