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.

tzmatt7447
fonte

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.

reko_t
fonte
18
SELECT * FROM table WHERE DATEDIFF(NOW(),colname) > 7;
Sajjad Shirazy
fonte
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

Michael Pakhantsov
fonte