Não. Até agora, o otimizador em todas as versões do MySQL não pode usar um índice para tal condição. Não é sargável
Se você quiser usar índices, terá que usar uma função para reescrever/reverter sua condição para que nenhuma função seja aplicada na coluna:
WHERE some_timestamp > ReverseFunctionOf_UNIX_TIMESTAMP( NOW() )
O que usar depende do tipo de some_timestampdados da coluna.
Se for um TIMESTAMP, você pode simplesmente usar
WHERE some_timestamp> NOW()
Se some_timestampfor um INTque armazena registros de data e hora do Unix (segundos desde '1970-01-01 00:00:00'), acho que você tinha a função correta, mas no lugar errado. Você deveria usar:
Não. Até agora, o otimizador em todas as versões do MySQL não pode usar um índice para tal condição. Não é sargável
Se você quiser usar índices, terá que usar uma função para reescrever/reverter sua condição para que nenhuma função seja aplicada na coluna:
O que usar depende do tipo de
some_timestamp
dados da coluna.Se for um
TIMESTAMP
, você pode simplesmente usarSe
some_timestamp
for umINT
que armazena registros de data e hora do Unix (segundos desde'1970-01-01 00:00:00'
), acho que você tinha a função correta, mas no lugar errado. Você deveria usar:ou o equivalente:
Verifique a documentação do MySQL:
DATE
eTIME
funções