oracle自定义函数判断字符串是否为日期值

 判断字符串是否为年月日时分秒格式

CREATE OR REPLACE FUNCTION IS_DATE(parameter VARCHAR2)
 RETURN NUMBER

 IS----判断字符串是否为日期格式,是返回1,否返回0

  val DATE;
BEGIN
    val := TO_DATE(NVL(parameter, 'a'), 'yyyy-mm-dd hh24:mi:ss');
    RETURN 1;

EXCEPTION
  WHEN OTHERS THEN
    RETURN 0;
END;

调用示例:

declare res number;
begin
 res := IS_DATE('2021-10-9 14:37:36'); --正确的日期格式
 dbms_output.put_line(res);
end;

 

declare res number;
begin
 res := IS_DATE('2021-10-39 14:37:36'); --错误的日期格式
 dbms_output.put_line(res);
end;

在SQL语句中的使用示例:

UPDATE MID_CM_VISIT_INTERVIEWEE_TEMP B SET ABNORMAL_HINTS='审核日期字段应为日期格式。' WHERE IS_DATE(AUDIT_DATE) = 0;


 判断字符串是否为时分格式,例如09:30、15:00

CREATE OR REPLACE FUNCTION IS_24DATE(parameter VARCHAR2)
 RETURN NUMBER

 IS----判断字符串是否为24小时制时间格式,例如09:30、15:00 是返回1,否返回0

  val VARCHAR2(1000);
BEGIN
    val := TO_CHAR(TO_DATE(NVL(parameter, 'a'), 'HH24:MI'), 'HH24:MI');
    RETURN 1;

EXCEPTION
  WHEN OTHERS THEN
    RETURN 0;
END;

猜你喜欢

转载自blog.csdn.net/liangmengbk/article/details/120670511
今日推荐