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

Comment utiliser une valeur de chaîne/colonne comme constante d'intervalle de date mysql (JOUR, MOIS...) ?

Malheureusement, MySQL attend un mot-clé après INTERVAL et non une chaîne ou une valeur numérique. Vous pouvez obtenir ce que vous voulez en utilisant une instruction CASE et donner les différents cas avec les différents mots-clés.

Par exemple, supposons que vous souhaitiez ajouter la valeur avec l'unité appropriée à la date, l'instruction SQL serait la suivante :

SELECT CASE unit
       WHEN "DAY" THEN date_add(date, INTERVAL value DAY)
       WHEN "MONTH" THEN date_add(date, INTERVAL value MONTH)
       END
       AS newDate
FROM table

Fonctionne également dans la clause WHERE d'ailleurs :)