Sql 将3位输入转换为日期格式

Sql 将3位输入转换为日期格式,sql,oracle,Sql,Oracle,尽管业务需求将输入声明为“julian”日期,但实际上它是传递给Oracle存储过程的3位数字。例如,如果输入为“001”,则我需要将其转换为当前年度的1月1日,或者如果输入为010,则将其转换为当前年度的1月10日等。考虑到闰年,我将如何进行转换? 请建议。谢谢您的时间。您可以尝试这种方法 select to_char(trunc(sysdate, 'YY') + 060 - 1, 'DD/MM/YYYY') as day from dual; 2016年2月29日 select to_ch

尽管业务需求将输入声明为“julian”日期,但实际上它是传递给Oracle存储过程的3位数字。例如,如果输入为“001”,则我需要将其转换为当前年度的1月1日,或者如果输入为010,则将其转换为当前年度的1月10日等。考虑到闰年,我将如何进行转换?
请建议。谢谢您的时间。

您可以尝试这种方法

select to_char(trunc(sysdate, 'YY') + 060 - 1, 'DD/MM/YYYY') as day from dual;
2016年2月29日

select to_char(trunc(sysdate, 'YY') + 010 - 1, 'DD/MM/YYYY') as day from dual;

2016年1月10日

您可以尝试这种方法

select to_char(trunc(sysdate, 'YY') + 060 - 1, 'DD/MM/YYYY') as day from dual;
2016年2月29日

select to_char(trunc(sysdate, 'YY') + 010 - 1, 'DD/MM/YYYY') as day from dual;

2016年1月10日

如果三位数代表一年中的某一天,您只需将
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

如果三位数字代表一年中的某一天,您只需将
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

你怎么用三位数表示11月10日?凯文,我得到的输入是从一年的1月1日开始的每日增量,即001。那么基本上你通过一年中的某一天?你怎么用三位数表示11月10日?凯文,我将得到的输入是从一年的1月1日开始的每日增量,即001。那么基本上你通过了一年中的哪一天?