【发布时间】:2018-03-08 18:55:22
【问题描述】:
所以我正在尝试将一年中的某些日期转换为日期格式。问题是一年中的某一天日期在 100 天以下的日期为 DDYYYY 格式,100 天及以上的日期为 DDDYYYY 格式。我尝试了以下方法,但仍然收到“一年中的某一天必须在 1 到 365 之间(闰年为 366)”错误:
select CASE when data_Date >= 999999
then to_date(data_date, 'DDDYYYY')
when data_Date >= 99999
then to_date(data_Date, 'DDYYYY')
else to_date(data_date, 'DYYYY')
END as DATA_DATE_CONVERTED
from table;
提前致谢
样本数据如下:
Data_date (being passed in as a varchar2)
1072015
12017
612014
672013
72017
1112018
【问题讨论】:
-
一些示例数据会有所帮助。
-
抱歉,已添加!
-
你明白你的尝试失败的原因吧?不同的模型('DDYYYY' 和 'DYYYY')与 'DDDYYYY' 有非常不同的含义 - 它们不仅仅意味着“日”组件只有两位数或一位。相比之下,如果您的输入格式为 4-2017、53-2017 等,并且您提供的格式模型为“DDD-YYYY”,那么这将毫无问题。