Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Selecione o dia da semana a partir da data


Use DAYOFWEEK na sua consulta, algo como:
SELECT * FROM mytable WHERE MONTH(event_date) = 5 AND DAYOFWEEK(event_date) = 7;

Aqui encontrará todas as informações para os sábados de maio.

Para obter as leituras mais rápidas armazene um campo desnormalizado que seja o dia da semana (e o que mais você precisar). Dessa forma, você pode indexar colunas e evitar varreduras completas de tabela.

Apenas tente o acima primeiro para ver se atende às suas necessidades e, se não, adicione algumas colunas extras e armazene os dados na gravação. Apenas tome cuidado com as anomalias de atualização (certifique-se de atualizar a coluna day_of_week se alterar event_date).

Observe que os campos desnormalizados aumentarão o tempo necessário para fazer gravações, aumentarão os cálculos na gravação e ocuparão mais espaço. Certifique-se de que você realmente precisa do benefício e pode mensurar se ele te ajuda.