我有日期,在0年之前。我需要将它们转换为AD日期并再增加1年。例如,我有BC 16.2.2011
并希望AD 16.2.2012
。
我们有一个第三方Java应用程序,有时会发生错误;它会错误地保存日期。在上面的示例中,它应该保存16.2.2012
,但在数据库中,-16.2.2011
(它是一年“小一年,因为Oracle没有零年 - 这很重要)。
转换这些日期很简单,但问题是当保存的日期应为29.2.2012
时,因为没有-29.2.2011
。而不是这个日期,它保存-1.3.2011
,我无法轻易转换。
有没有办法正确转换日期?比如从数据库中的转储数据开始年份的秒数?
答案 0 :(得分:0)
告诉我们这是否有问题:
select to_date(to_char(your_bc_date_here,'dd.mm.YYYY'), 'dd.mm.YYYY') + 1 from dual;
这是一个错误的演员,因为它不认为年份可能是负数(正确将是syyyy
)
我已经测试过:your_bc_date = to_date('BC 28.2.2011', 'BC dd.mm.yyyy')