即使业务要求将输入声明为" julian" date,它实际上是一个传递给Oracle存储过程的3位数字。例如,如果输入是' 001'然后我需要将它转换为当年的1月1日,或者如果它是010将其转换为当年的1月10日等。我如何考虑闰年呢? 请建议。谢谢你的时间。
答案 0 :(得分:3)
如果三位数字代表一年中的某一天,您只需使用to_date
功能DDD
,它代表三位数字,即一年中的某一天。
select to_char(to_date(310, 'DDD'),'DD.MM.YYYY') from dual; -- 05.11.2016
select to_char(to_date(001, 'DDD'),'DD.MM.YYYY') from dual; -- 01.01.2016
select to_char(to_date(010, 'DDD'),'DD.MM.YYYY') from dual; -- 10.01.2016
select to_char(to_date(060, 'DDD'),'DD.MM.YYYY') from dual; -- 29.02.2016
答案 1 :(得分:1)
你可以尝试这种方法。
select to_char(trunc(sysdate, 'YY') + 060 - 1, 'DD/MM/YYYY') as day from dual;
29/02/2016
select to_char(trunc(sysdate, 'YY') + 010 - 1, 'DD/MM/YYYY') as day from dual;
2016年10月1日