2016-01-20 301 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