2016-01-20 46 views
0

尽管业务需求将输入声明为“julian”日期,但它实际上是一个传递给Oracle存储过程的3位数字。例如,如果输入是'001',那么我需要将它转换为当年的1月1日,或者如果它是010,则将其转换为当年的1月10日等。我怎样才能考虑到闰年呢? 请建议。感谢您的时间。将3位数字输入转换为日期格式

+1

你会如何代表11月10日的三位数字? – SomeJavaGuy

+0

凯文,我会得到的输入是从今年1月1日起的每日增量,即001。 – QuickDrawMcgraw

+0

如此基本,你过去了一年的某一天? – SomeJavaGuy

回答

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日

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