2017-07-09 2 views
1

J'ai une table mysql qui contient, entre autres, les colonnes personName, board (un bool qui indique si la personne fait partie du conseil ou non) et board_date (une colonne de date qui contient la date à laquelle la personne a été élue au conseil, si elle était).SQL trouver les dates qui expireront dans 6 mois à partir de maintenant

Dans mon club, les gens sont élus pour des mandats de 5 ans. J'ai besoin de créer une requête qui retournera les personnes dont le mandat expirera dans les 6 prochains mois. Mais je n'ai aucune idée sur la façon de faire ce calcul avec ces dates.

Quelqu'un peut-il me donner un coup de main? J'ai hérité de ce système d'un administrateur précédent, et le client le veut. Je ne suis pas bon avec SQL

Répondre

4

vous pouvez utiliser date_add ajouter 6 mois à présent()

select * 
from my_table 
where date_add(board_date, INTERVAL 5 YEAR) 
     between now() and DATE_ADD(now(), INTERVAL 6 MONTH) 
+0

réponse mis à jour avec board_date + 5 ans – scaisEdge

+0

Malheureusement, 'date_add (board_date, INTERVALLE 5 ans)' rend non [sargeable] (https://stackoverflow.com/a/799616/533120). Mieux vaut le déplacer vers la droite et laisser "board_date" "nu". –