是否有可能在MySQL中投射为间隔?mysql作为间隔投射
我要评估来自查询的值作为间隔,这样的:
select DATE_SUB(NOW(),CAST(user.expiry_interval AS interval))
其中user.expiry_interval是 '间隔1周' 或类似的东西
select DATE_SUB(NOW(),CAST('INTERVAL 1 week' AS INTERVAL))
是否有可能在MySQL中投射为间隔?mysql作为间隔投射
我要评估来自查询的值作为间隔,这样的:
select DATE_SUB(NOW(),CAST(user.expiry_interval AS interval))
其中user.expiry_interval是 '间隔1周' 或类似的东西
select DATE_SUB(NOW(),CAST('INTERVAL 1 week' AS INTERVAL))
INTERVAL
is not a data type,但一个keyword将可读的“持续时间”字符串转换为整数。因此,“铸造到INTERVAL
”是没有意义的。
如果您的“间隔”输入是可变的,那么这可以工作,但不能从字符串中取出整个东西,而不能将字符串"SELECT * FROM tbl"
“投”到查询表达式中。你可以为数字操作数使用一个变量(见下面),但我认为就是这样。
SELECT DATE_SUB(NOW(), INTERVAL `x` DAY) FROM `tbl`;
如果你想要的逻辑比这更强大,你将不得不求助于CASE
。或者...首先存储整数持续时间。
简单而优秀! – Imdad
可能的重复[如何使用字符串/列值作为MySQL日期间隔常量(DAY,MONTH ...)?](http://stackoverflow.com/questions/888971/how-to-use- a-string-column-value-as-a-mysql-date-interval-constant-day-month) –
你链接到的问题很有帮助,谢谢。 – PeterL