我想在大于10的日期时将结果递增1。
我希望在MONTHS_BETWEEN
oracle函数
select
dt1, dt2,
CASE
when
TRUNC( months_between(dt1,dt2) ) <= 0 then 0
when
TO_NUMBER(TO_CHAR( TO_DATE(dt2,'DD/MM/YYYY'),'DD')) > 10
then
TRUNC( months_between(dt1,dt2) )
end as mths
from
(
select date '2013-12-01' dt1, date '2013-12-25' dt2 from dual
)
答案 0 :(得分:1)
你的需求不明确......
当...构造是一个非常基本的 - 从我理解你需要的 - 我不明白你为什么不使用:
CASE WHEN months_between(dt1,dt2) > 10 THEN add_months(dt2,1) ELSE dt2
或类似的......
如果我没有给出足够广泛的答案来解决问题 - 请详细描述问题,并提供一些输入和预期输出的例子......