可以在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))
答案 0 :(得分:3)
INTERVAL
is not a data type,但keyword将人类可读的“持续时间”字符串转换为整数。因此,“施放到INTERVAL
”毫无意义。
如果你的“interval”输入是可变的,那么这可以工作,但你不能从字符串中取出整个东西,只能将字符串"SELECT * FROM tbl"
“转换”成查询表达式。你可以使用一个变量作为数字操作数(见下文),但我认为就是这样。
SELECT DATE_SUB(NOW(), INTERVAL `x` DAY) FROM `tbl`;
如果你想要比那更强大的逻辑,你将不得不诉诸CASE
。或者......首先存储整数持续时间。