Mysql
 sql >> Database >  >> RDS >> Mysql

Come utilizzare un valore stringa/colonna come costante di intervallo di date mysql (DAY, MONTH...)?

Sfortunatamente MySQL si aspetta una parola chiave dopo INTERVAL e non una stringa o un valore numerico. Puoi ottenere ciò che desideri utilizzando un'istruzione CASE e fornire i diversi casi con le diverse parole chiave.

Ad esempio, supponiamo di voler aggiungere il valore con l'unità appropriata alla data, quindi l'istruzione SQL sarebbe la seguente:

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

A proposito, funziona anche nella clausola WHERE :)