tengo tres columnas: una columna de fecha, una columna de número entero, y una columna varchar como esto:Cómo utilizar un valor de cadena/columna como una constante de fecha MySQL intervalo (día, mes ...)?
+------------+------+---------+
| date |value | unit |
+------------+------+---------+
| 2009-01-01 | 2 | DAY |
| 2009-02-01 | 3 | MONTH |
+------------+------+---------+
Quiero usar los valores del entero y la columna de la varchar en un DATE_ADD mysql() funcionan como parte de la expresión "INTVERAL", agregada a la fecha en la columna 'fecha'.
Por ejemplo: DATE_ADD (2009-01-01, INTERVALO DÍA), de modo que el '2009-01-01' es de la columna de 'fecha', el '2' es de la columna "valor"/entero y el "DÍA" es de la columna 'unidad'/varchar.
y el selectivo se vería así:
select date_add(table.date_column, INTERVAL table.integer_column table.varchar_column) from table
El problema es: no funciona. La fecha y la columna entera de trabajo, por lo que esto está bien:
select date_add(table.date_column, INTERVAL table.integer_column DAY) from table
pero tan pronto que tratar de reemplazar el "DIA" palabra clave con un valor de cadena de una columna aparece un mensaje de error.
alguna idea?
supongo forma más general el problema es:
¿Cómo uso valores recuperados de forma dinámica como constantes expresiones/clave? ¿Hay una especie de función "eval" en MySQL?
Este problema me ha estado molestando desde hace mucho tiempo, cualquier ayuda sería muy grande.
golpe
Probó esto y no funciona. – stldoug