Obtener días anteriores a una fecha MySQL

Para obtener los registros de una sentencia SQL de un rango de días anteriores o posteriores a partir de un intervalo asignado por nosotros, se usa la sentencia INTERVAL, por ejemplo:

  • Rango de 7 días anteriores: – INTERVAL 7 DAY
  • Rango de 14 días anteriores: – INTERVAL 14 DAY
  • Rango de 30 días anteriores: – INTERVAL 30 DAY
Si por el contrario queremos obtener los días posteriores solo tendremos que cambiar el signo menos (-) por el signo más (+):
  • Rango de 7 días posteriores: + INTERVAL 7 DAY
  • Rango de 14 días posteriores: + INTERVAL 14 DAY
  • Rango de 30 días posteriores: + INTERVAL 30 DAY

La sentencia CURDATE() se usa para obtener la fecha actual y de esta manera posteriormente poder aplicarle el intervalo que deseemos.

En el siguiente ejemplo vamos a mostrar como obtener los registros de los últimos 7 días a partir de nuestro campo «campo_fecha», este campo debe de ser tipo fecha y estará almacenado en nuestra tabla de base de datos.

SELECT ...
FROM ...
WHERE DATE(campo_fecha) > CURDATE() - INTERVAL 7 DAY;

Al igual que hemos usando la palabra «DAY» para definir nuestro intervalo mediante días, se puede hacer con otras medidades de tiempo como semana «WEEK», mes «MONTH» o año «YEAR».

En la siguiente lista veremos los diferentes tipos de unidades que existen:

  • DAY DAYS
  • DAY_HOUR
  • DAY_MINUTE
  • DAY_SECOND
  • HOUR
  • HOUR_MICROSECOND
  • HOUR_MINUTE
  • HOUR_SECOND
  • MICROSECOND
  • MINUTE
  • MINUTE_MICROSECOND
  • MINUTE_SECOND
  • MONTH
  • QUARTER
  • SECOND
  • SECOND_MICROSECOND
  • WEEK
  • YEAR
  • YEAR_MONTH

Iván Martínez

Ingeniero Informático apasionado por el mundo del desarrollo WEB. Me gusta caminar por este mundo lleno de tecnologías y día a día aprender cosas nuevas como el doctor Frankenstein ¡dadme cosas para experimentar!

Deja una respuesta

Tu dirección de correo electrónico no será publicada.