mysql强制转换为interval

时间:2011-09-22 09:43:22

标签: mysql casting intervals

可以在MySQL中作为间隔进行转换吗?

我想将查询中的值作为间隔进行评估,如下所示:

select DATE_SUB(NOW(),CAST(user.expiry_interval AS interval))

其中user.expiry_interval是'INTERVAL 1 WEEK'或类似的东西

select DATE_SUB(NOW(),CAST('INTERVAL 1 week' AS INTERVAL))

1 个答案:

答案 0 :(得分:3)

INTERVAL is not a data type,但keyword将人类可读的“持续时间”字符串转换为整数。因此,“施放到INTERVAL”毫无意义。

如果你的“interval”输入是可变的,那么这可以工作,但你不能从字符串中取出整个东西,只能将字符串"SELECT * FROM tbl"“转换”成查询表达式。你可以使用一个变量作为数字操作数(见下文),但我认为就是这样。

SELECT DATE_SUB(NOW(), INTERVAL `x` DAY) FROM `tbl`;

如果你想要比那更强大的逻辑,你将不得不诉诸CASE。或者......首先存储整数持续时间。