我正在使用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,没有区别。
有什么建议吗? 非常感谢!
答案 0 :(得分:1)
INTERVAL
函数仅适用于整数值。
作为一种解决方法,转换" 1.4"几个月到几天。使用ROUND
或FLOOR
或CEILING
将其转换为整数,然后
+ INTERVAL ... DAY
应该让你想要你。
或者如果你需要SECOND
精度,那么做一个稍微不同的公式。
或者如果你需要毫秒,......(等)
请注意,公式会根据您所需的精度而变化。因此,MySQL定义月或年的小数值是没有意义的。