原谅我,因为我是新手。我正在尝试在查询中为日期添加一年。要添加的年份基于数据库中的月/日。如果日期在 11 月 1 日之前,那么年份将是 2017 年,如果在 11 月 1 日之后,那么它将是 2018 年。我已经尝试了几种方法(见下文)并且可以在查询中添加年份但是当我输入他们在案例陈述中我得到“无效号码”错误。
在日期使用 to_char:
CASE
WHEN to_char(au.creat_ts, 'MMDD') >= to_char('11/01/2018', 'MMDD') THEN
to_char(to_date( '2017'||to_char(au.creat_ts,'MMDDHH24MISS'),
'YYYYMMDDHH24MISS' ), 'MM/DD/YYYY')
ELSE
to_char(to_date( '2018'||to_char(au.creat_ts,'MMDDHH24MISS'), 'YYYYMMDDHH24MISS' ), 'MM/DD/YYYY')
END cmpltn_dt,
添加月份:
CASE
WHEN to_char(au.creat_ts, 'MMDD') >= to_char('11/01/2018', 'MMDD') THEN
trunc(add_months(au.creat_ts,
floor(months_between(SYSDATE, au.creat_ts) / 12) * 12)) --calcx --add years
ELSE
trunc(add_months(au.creat_ts,
(floor(months_between(SYSDATE, au.creat_ts) / 12) - 1) * 12))
END calcx,
这些在 select from dual 语句中运行,没有错误。有任何想法吗?提前非常感谢。