如何通过使用PLSQL仅更改年份而不是日期或月份来更新日期列?

jak*_*ake 2 sql oracle datetime date-arithmetic

我有一个包含信用卡记录的数据库表.其中一个字段是Date字段.如果年份小于2010年,我想通过将日期的年份部分更改为2011来更新此字段.根据我的发现,PLSQL具有时间和月份的功能,但与年份无关(据我所知).

jos*_*989 5

这说明了如何

with cc as(
select to_date('12-jan-1999') as cdate from dual union all
select to_date('12-jan-1921') as cdate from dual union all
select to_date('12-jan-1900') as cdate from dual union all
select to_date('12-jan-2000') as cdate from dual union all
select to_date('12-jan-2010') as cdate from dual
)
select  to_date( to_char(cdate,'DD-MON')  ||'-2011','DD-MON-YYYY')
from cc
where cdate < to_date('01-JAN-2010','DD-MON-YYYY')
/
Run Code Online (Sandbox Code Playgroud)