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
- 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