oracle月份无效代码如下。。

fr.png

select TO_DATE((TO_CHAR(('20'||concat( substr(CONTRACT_START_DATE,8,2),('-'||concat(CASE WHEN LENGTH(CONTRACT_START_DATE) = 2 THEN substr(CONTRACT_START_DATE,4,1) ELSE '0' || substr(CONTRACT_START_DATE,4,1) END 

,'-'||substr(CONTRACT_START_DATE,1,2) ))) 

)

),'YYYY-MM-DD')AA

FROM YYY_KEY

-----------------------

图片是数据类型

FineReport 3333xzx 发布于 2023-1-4 15:49 (编辑于 2023-1-4 15:53)
1min目标场景问卷 立即参与
回答问题
悬赏:10 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
CD20160914Lv8专家互助
发布于2023-1-4 15:50(编辑于 2023-1-4 15:55)

你的CONTRACT_START_DATE是什么内容?截图出来

image.png

select 

t.字段,

to_date('20'||substr(t.字段,7,2)||'-'||replace(substr(t.字段,4,2),'月','')||'-'||substr(t.字段,1,2),'yyyy-mm-dd') as 日期

 from (

select '27-3月-21' as 字段 from dual

) t

----------------去掉空格后的--------------

select 

t.字段,

to_date('20'||substr(replace(t.字段,' ',''),7,2)||'-'||replace(substr(replace(t.字段,' ',''),4,2),'月','')||'-'||substr(replace(t.字段,' ',''),1,2),'yyyy-mm-dd') as 日期

 from (

select '27-3月 -21' as 字段 from dual

) t

  • 3333xzx 3333xzx(提问者) 好啦
    2023-01-04 15:53 
  • CD20160914 CD20160914 回复 3333xzx(提问者) 参考上面的语句吧。。如果你中间有空格,那么替换掉空格
    2023-01-04 15:55 
  • CD20160914 CD20160914 回复 3333xzx(提问者) 有两段。第二段是我把你的空格替换掉以后再截取然后再to_date转换得出日期
    2023-01-04 15:56 
  • 3333xzx 3333xzx(提问者) 回复 CD20160914 噢。。好
    2023-01-04 15:57 
  • 3333xzx 3333xzx(提问者) 回复 CD20160914 太厉害啦
    2023-01-04 16:00 
  • 2关注人数
  • 291浏览人数
  • 最后回答于:2023-1-4 15:55
    请选择关闭问题的原因
    确定 取消
    返回顶部