是否可以选择字符串'03 / 01/2018'和'09 -NOV-17',以便结果均采用'MM / DD / YYYY'格式?
结果也可以是字符串。
答案 0 :(得分:1)
无需使用正则表达式-简单的LIKE
可以选择DATE格式。
示例
with my_data as (
select '03/01/2018' dt from dual union all
select '09-NOV-17' from dual)
select
dt,
case when dt like '__/__/____' then to_date(dt,'dd/mm/yyyy')
when dt like '__-___-__' then to_date(dt,'dd-mon-rr')
end as dt_date
from my_data;
。
DT DT_DATE
---------- -------------------
03/01/2018 03.01.2018 00:00:00
09-NOV-17 09.11.2017 00:00:00
答案 1 :(得分:0)
您可以使用case
表达式。假设所有值都是两种格式之一,则可以执行以下操作将日期转换为日期:
select (case when col like '%-%-%' then to_date(col, 'MM/DD/YYYY')
else to_date(col, 'DD-MON-YY')
end)
我更喜欢日期格式的值。您可以使用to_char()
转换为您选择的字符串格式。