sql >> Database >  >> RDS >> Mysql

Selecteer dag van de week vanaf datum

Gebruik DAYOFWEEK in uw zoekopdracht, zoiets als:

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

Hier vindt u alle informatie voor de zaterdagen in mei.

Om de snelste uitlezingen te krijgen sla een gedenormaliseerd veld op dat de dag van de week is (en wat je nog meer nodig hebt). Op die manier kunt u kolommen indexeren en volledige tabelscans vermijden.

Probeer het bovenstaande eerst om te zien of het aan uw behoeften voldoet en zo niet, voeg dan wat extra kolommen toe en sla de gegevens op tijdens het schrijven. Pas op voor updateafwijkingen (zorg ervoor dat u de kolom day_of_week bijwerkt als u event_date wijzigt).

Houd er rekening mee dat de gedenormaliseerde velden de tijd die nodig is om te schrijven vergroten, de berekeningen bij het schrijven vergroten en meer ruimte in beslag nemen. Zorg ervoor dat je het voordeel echt nodig hebt en meet of het je helpt.



  1. MySQL-buitenlandse sleutels

  2. Een gids voor het partitioneren van gegevens in PostgreSQL

  3. Waarom staat Oracle SQL niet toe dat we kolomaliassen gebruiken in GROUP BY-clausules?

  4. Een bestandsgroep toevoegen aan een SQL Server-database (T-SQL)