27. 时间“13:00:00”格式验证

Posted on 2015-12-29 15:49  zkx4213  阅读(155)  评论(0编辑  收藏  举报

create or replace procedure sp_HRM_PunchTimeCheck(
  o_Ret out int,
  o_RetInfo out varchar2,
  i_PunchTime varchar2
)
AS
v_flag varchar2(25);--第一个冒号
v_PunchTime date;
Begin
  o_Ret:=1;
  o_RetInfo:='';
  if length(i_PunchTime)!=8 then
    o_Ret:=-1;
    o_RetInfo:='时间长度必须为8!请按时间格式认真填写';
    return;
  else
  begin
    select substr(i_PunchTime,3,1) into v_flag from dual;
    if v_flag!=':' then
    o_Ret:=-1;
    else
      select substr(i_PunchTime,6,1) into v_flag from dual;
      if v_flag!=':' then
        o_Ret:=-1;
      else
        begin
          select to_date(i_PunchTime,'hh24:mi:ss') into v_PunchTime from dual;
          exception when others then o_Ret:=-1;
        end;
      end if;
    end if;
  end;
  if o_Ret=-1 then
    o_RetInfo:='填写的时间格式有误!请按时间格式认真填写';
    return;
  end if;
  end if;

end;

 

正则表达式

 [0-9]{2}:[0-9]{2}:[0-9]{2} 
 [0-9][0-9]:[0-9][0-9]:[0-9][0-9] 

Copyright © 2024 zkx4213
Powered by .NET 8.0 on Kubernetes