Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie verwende ich einen Zeichenfolgen-/Spaltenwert als MySQL-Datumsintervallkonstante (TAG, MONAT ...)?

Leider erwartet MySQL nach INTERVAL ein Schlüsselwort und keinen String oder Zahlenwert. Sie können erreichen, was Sie wollen, indem Sie eine CASE-Anweisung verwenden und die verschiedenen Fälle mit den verschiedenen Schlüsselwörtern angeben.

Nehmen wir als Beispiel an, Sie möchten den Wert mit der entsprechenden Einheit zum Datum addieren, dann würde die SQL-Anweisung wie folgt lauten:

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

Funktioniert übrigens auch in der WHERE-Klausel :)