gpt4 book ai didi

java - oracle add_months 函数不同于 Java

转载 作者:行者123 更新时间:2023-12-04 21:27:56 31 4
gpt4 key购买 nike

我最近发现 Oracle 向给定日期添加月份(使用 ADD_MONTHS 函数)与 Java 向日历对象添加月份的方式之间存在差异。

例如在甲骨文中:

select add_months('2009-02-28', +1) from dual;

产生结果:“09-03-31”

和查询:

select add_months('2009-02-28', -1) from dual;

产生结果“09-01-31”

然而在 Java 中,相同计算(使用 GregorianCalendar.add() 方法)的结果是(分别):09-03-28和09-01-28

有没有办法让 Oracle 和 Java 的行为相同? (例如 oracle 中的某些设置或 Java 中的某些参数)?

最佳答案

当您进行月份运算时,您需要从业务角度决定处理具有不同天数的月份的正确方法是什么。您提出的问题的另一面是从较长的月份(如八月)到较短的月份(如二月)(如果涉及闰年,甚至从二月到二月)会发生什么。如果您很高兴因为计算找不到“Feb-30”而报告错误,请查看 INTERVAL

关于java - oracle add_months 函数不同于 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1473713/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com