我想从数据库中提取ultima_modifica字段(TIMESTAMP)和ultima_modifica + attesa(枚举'1','3','5')之间的所有字段 last_change是一个(时间戳
ultima_modifica是一个(ENUM)
SELECT * FROM `my_table` WHERE ultima_modifica between ultima_modifica and ultima_modifica + interval attesa minute
这样,我将检索所有结果
目标是仅检索时间戳(ultima_modifica)和时间戳ultima_modifica +枚举(3)之间的数据
感谢帮助
答案 0 :(得分:2)
尝试使用TIMESTAMPADD
:
SELECT *
FROM my_table
WHERE ultima_modifica BETWEEN ultima_modifica AND TIMESTAMPADD(MINUTE, attesa, ultima_modifica);
通过使用TIMESTAMPADD
,我们可以解决使用INTERVAL
所需的文字值的问题。该答案假定attesa
是表中的一列,单位为分钟。
答案 1 :(得分:0)
这是您的过滤条件:
WHERE last_change between last_change and last_change + interval wait_time minute
嗯,有三种可能性:
last_change
或wait_time
为NULL
,则不返回任何行。wait_time
为负,则不返回任何行。为什么?因为任何给定的时间总是会在该时间和未来几分钟之间的“时间”之间。
因此,您的意图完全不清楚。您的查询通常将返回所有行。并且总是要返回所有具有非NULL
和非负值的行。