Mysql
 sql >> Database >  >> RDS >> Mysql

Seleziona il giorno della settimana dalla data

Usa DAYOFWEEK nella tua query, qualcosa come:

SELECT * FROM mytable WHERE MONTH(event_date) = 5 AND DAYOFWEEK(event_date) = 7;

Qui troverai tutte le informazioni per i sabati di maggio.

Per ottenere le letture più veloci memorizza un campo denormalizzato che è il giorno della settimana (e quant'altro ti serva). In questo modo puoi indicizzare le colonne ed evitare scansioni complete della tabella.

Prova prima quanto sopra per vedere se è adatto alle tue esigenze e, in caso contrario, aggiungi alcune colonne extra e archivia i dati in scrittura. Fai solo attenzione alle anomalie di aggiornamento (assicurati di aggiornare la colonna day_of_week se modifichi event_date).

Nota che i campi denormalizzati aumenteranno il tempo impiegato per eseguire le scritture, aumenteranno i calcoli in scrittura e occuperanno più spazio. Assicurati di aver davvero bisogno del vantaggio e di poter misurare che ti aiuta.