Consulta / datas MYSQL anteriores a 1 semana atrás (todos os horários em UTC)


89

Como faço para consultar um banco de dados mysql para retornar todos os registros com data e hora anteriores a 1 semana atrás. Observe que a tabela datetime armazena tudo em UTC, e eu deveria estar comparando isso.

Só para ficar claro - estou procurando uma consulta mysql pura.

Respostas:


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

Se sua tabela armazena data e hora em fuso horário diferente do que NOW()retorna, você pode usar UTC_TIMESTAMP()para obter o carimbo de data / hora em UTC.


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

5
Embora este código possa responder à pergunta, fornecer contexto adicional sobre por que e / ou como este código responde à pergunta melhora seu valor a longo prazo.
JAL

este é mais curto, devo usar este?
moeiscool

4
Talvez seja mais curto, mas como seria capaz de usar um índice.
swdev

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

OU

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

Resultado:

26-12-2007

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.