Mysql
 sql >> Base de données >  >> RDS >> Mysql

Sélectionnez le jour de la semaine à partir de la date

Utilisez DAYOFWEEK dans votre requête, quelque chose comme :

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

Cela trouvera toutes les infos pour les samedis de mai.

Pour obtenir les lectures les plus rapides stocker un champ dénormalisé qui est le jour de la semaine (et tout ce dont vous avez besoin). De cette façon, vous pouvez indexer les colonnes et éviter les analyses complètes de la table.

Essayez d'abord ce qui précède pour voir si cela répond à vos besoins et si ce n'est pas le cas, ajoutez des colonnes supplémentaires et stockez les données en écriture. Faites juste attention aux anomalies de mise à jour (assurez-vous de mettre à jour la colonne day_of_week si vous modifiez event_date).

Notez que les champs dénormalisés augmenteront le temps nécessaire pour effectuer des écritures, augmenteront les calculs lors de l'écriture et occuperont plus d'espace. Assurez-vous que vous avez vraiment besoin de l'avantage et que vous pouvez mesurer qu'il vous aide.