首页 > 数据库技术 > 详细

oracle日期正则表达式

时间:2020-03-10 12:13:51      阅读:519      评论:0      收藏:0      [点我收藏+]

1900-2999日期正则表达式

  • YYYY-MM-DD
 select case
            when regexp_like('2999-11-30',
                             '^((((19|2\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((19|2\d)\d{2})-(0?[469]|11)-(0?[1-9]|[12]\d|30))|(((19|2\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|((19([02468][048]|13579)[26]|2\d(0[48]|[13579][26]|[2468][048])|(2000))-0?2-(0?[1-9]|[12]\d)))$') then
             1
            else
             0
          end
     from dual;
  • YYYY/MM/DD
 select case
            when regexp_like('2999/11/30',
                             '^((((19|2\d)\d{2})/(0?[13578]|1[02])/(0?[1-9]|[12]\d|3[01]))|(((19|2\d)\d{2})/(0?[469]|11)/(0?[1-9]|[12]\d|30))|(((19|2\d)\d{2})/0?2/(0?[1-9]|1\d|2[0-8]))|((19([02468][048]|13579)[26]|2\d(0[48]|[13579][26]|[2468][048])|(2000))/0?2/(0?[1-9]|[12]\d)))$') then
             1
            else
             0
          end
     from dual;
  • YYYY.MM.DD
select case
            when regexp_like('2012.02.29',
                             '^((((19|2\d)\d{2}).(0?[13578]|1[02]).(0?[1-9]|[12]\d|3[01]))|(((19|2\d)\d{2}).(0?[469]|11).(0?[1-9]|[12]\d|30))|(((19|2\d)\d{2}).0?2.(0?[1-9]|1\d|2[0-8]))|((19([02468][048]|13579)[26]|2\d(0[48]|[13579][26]|[2468][048])|(2000)).0?2.(0?[1-9]|[12]\d)))$') then
             1
            else
             0
          end
     from dual;

oracle日期正则表达式

原文:https://www.cnblogs.com/jinit/p/12454860.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!