sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo usar un valor de cadena/columna como una constante de intervalo de fecha mysql (DÍA, MES...)?

Desafortunadamente, MySQL espera una palabra clave después de INTERVALO y no una cadena o valor numérico. Puede lograr lo que desea utilizando una declaración CASE y dar los diferentes casos con las diferentes palabras clave.

Como ejemplo, supongamos que desea agregar el valor con la unidad adecuada a la fecha, entonces la instrucción SQL sería la siguiente:

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

Por cierto, también funciona en la cláusula WHERE :)