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

consulta MySQL anosemana da semana atual para começar em uma quinta-feira, terminar em quarta-feira


Você pode aproveitar WEEKDAY() que retorna um número que representa o dia da semana (0 =segunda-feira, 6 =domingo) e alguns cálculos simples para reescrever essa consulta.

Subtraia o dia da semana em que deseja que a semana comece (no seu caso 4 =quinta-feira) da data selecionada, adicione 7 e tire o restante de 7. Isso lhe dará o número de dias a serem subtraídos para obter o início do seu intervalo.

Uma lógica semelhante se aplica para calcular a data de término do intervalo.
SELECT * 
FROM transactions 
WHERE DATE(transactionDate)
    BETWEEN DATE_SUB(DATE(NOW()), INTERVAL (WEEKDAY(NOW()) - 4 + 7) % 7 DAY)
        AND DATE_ADD(DATE(NOW()), INTERVAL 6 - (WEEKDAY(NOW()) - 4 + 7) % 7 DAY)
ORDER BY transactionDate DESC;

Para uma data de início diferente, substitua o dia da semana por 4 na consulta.