je réellement tenté d'ajouter une colonne de BirthMonth, si vous attendez la liste des clients pour obtenir très grande. Jusqu'à présent, les requêtes que j'ai vues (y compris l'exemple) nécessiteront une analyse de table complète, car vous passez la colonne de données à une fonction et la comparez. Si la taille de la table est quelconque, cela peut prendre beaucoup de temps, car aucun index ne pourra vous aider.
Donc, j'ajouter la colonne BirthMonth (indexé) et juste faire (avec MySQLisms possibles):
SELECT name
FROM cust
WHERE birthmonth = MONTH(NOW())
ORDER BY name;
Bien sûr, il devrait être facile de définir la colonne BirthMonth soit avec un déclencheur ou votre code client.
pourquoi pas ce travail pour MySQL? ils ont sûrement une datepart() équivalente? –
EXTRAIT semble faire ce que je suppose que datepart() fait. par exemple: SELECT EXTRACT (jour FROM myDate'). Il y a des fonctions individuelles pour chaque partie (day(), month(), year(), etc) – nickf