相关疑难解决方法(0)

如何使用字符串/列值作为mysql日期间隔常量(DAY,MONTH ...)?

我有三列:日期列,整数列和varchar列,如下所示:

+------------+------+---------+
| date       |value |  unit   |
+------------+------+---------+
| 2009-01-01 |    2 | DAY     | 
| 2009-02-01 |    3 | MONTH   | 
+------------+------+---------+
Run Code Online (Sandbox Code Playgroud)

我想使用的整数和在MySQL DATE_ADD()函数varchar列的"INTVERAL"表达式的一部分的值,添加到日期在"日期"列.

例如:date_add(2009-01-01,INTERVAL 2 DAY),以便'2009-01-01'来自'date'列,'2'来自"value"/ integer列和" DAY"来自'unit'/ varchar列.

选择将如下所示:

select date_add(table.date_column, INTERVAL table.integer_column table.varchar_column) from table
Run Code Online (Sandbox Code Playgroud)

问题是:它不起作用.日期和整数列工作,所以这是好的:

 select date_add(table.date_column, INTERVAL table.integer_column DAY) from table
Run Code Online (Sandbox Code Playgroud)

但是一旦我尝试用列中的字符串值替换"DAY"关键字,我就会收到错误消息.

有任何想法吗?

我想更普遍的问题是:

如何将动态检索的值用作常量/键表达式?mysql中有一种"eval"函数吗?

这个问题一直困扰着我很长一段时间,任何帮助都会非常棒.

击败

mysql datetime

21
推荐指数
2
解决办法
1万
查看次数

标签 统计

datetime ×1

mysql ×1