Consulta MYSQL / fechas anteriores a 1 semana atrás (todas las fechas en UTC)


89

¿Cómo consulto una base de datos mysql para devolver todos los registros con una fecha y hora anterior a 1 semana atrás? Tenga en cuenta que la tabla de fecha y hora almacena todo en UTC, y debería compararlo en eso mismo.

Para que quede claro, estoy buscando una consulta mysql pura.

Respuestas:


215
SELECT * FROM tbl WHERE datetime < NOW() - INTERVAL 1 WEEK

Si su tabla almacena las fechas y horas en una zona horaria diferente a la que NOW()devuelve, puede usarla UTC_TIMESTAMP()en su lugar para obtener la marca de tiempo en UTC.


18
SELECT * FROM table WHERE DATEDIFF(NOW(),colname) > 7;

5
Si bien este código puede responder a la pregunta, proporcionar un contexto adicional sobre por qué y / o cómo este código responde a la pregunta mejora su valor a largo plazo.
JAL

este es más corto, ¿debería usar este?
moeiscool

3
Tal vez esto sea más corto, pero ¿cómo podría usar un índice?
swdev

13
SELECT SUBDATE('2008-01-02', 7);

O

SELECT SUBDATE(now(), INTERVAL 1 week);

Resultado:

2007-12-26

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.