MySQL - 使用DECIMAL for MONTH和YEAR的INTERVAL不起作用

时间:2017-06-08 18:14:06

标签: mysql decimal intervals

我正在使用MySQL 5.6.12并且我必须在一个日期添加1.5个月(我不能添加45天,因为它必须是特定月份)。 即使我按照文档中的建议将其CAST到DECIMAL(2,1),它也会将其四舍五入为2.具体指令是:

DATE_ADD(index_date,INTERVAL CAST(1.5 AS DECIMAL(2,1))MONTH)

我尝试了1.4个百分点并将其四舍五入为1。 我已经尝试了YEAR,问题是一样的。 我也试过MySQL 5.7.9,没有区别。

有什么建议吗? 非常感谢!

1 个答案:

答案 0 :(得分:1)

INTERVAL函数仅适用于整数值。

作为一种解决方法,转换" 1.4"几个月到几天。使用ROUNDFLOORCEILING将其转换为整数,然后

+ INTERVAL ... DAY

应该让你想要你。

或者如果你需要SECOND精度,那么做一个稍微不同的公式。

或者如果你需要毫秒,......(等)

请注意,公式会根据您所需的精度而变化。因此,MySQL定义月或年的小数值是没有意义的。