Oracle PL / SQL日期时间数学 - 时间间隔

时间:2011-01-20 19:48:19

标签: sql oracle datetime oracle10g date-arithmetic

我一直在使用类似{?EndDate} - INTERVAL '1' YEAR的语法一段时间了,而且我知道我最终会遇到一个问题,我只是打了它。我试图做DATE '2010-12-31' - INTERVAL '6' MONTH,因为没有6月31日,它会窒息。对此进行编码的最有效和最一致的方法是什么?虽然追踪做出决定的人这样做会更令人满意,但这是不切实际的。 : - )

1 个答案:

答案 0 :(得分:3)

我不确定是否存在 constistent 方式,因为它肯定取决于某人认为6个月的内容。然而,imho,可以安全地假设add_months是标准方式(至少在Oracle中)减去或增加月数:

select add_months(DATE '2010-12-31',-6)  from dual;

此表达式将于2010年6月30日(即该月的最后一天(截至12月31日)返回。