CREATE OR REPLACE FUNCTION IS_DATETIME(
IN_DATE IN VARCHAR2)
RETURN INTEGER
AS
FLAG INTEGER;
DATETIME VARCHAR2(8);
HOU VARCHAR2(2);
MINU VARCHAR2(2);
SEC VARCHAR2(2);
BEGIN
IF IN_DATE IS NULL THEN
RETURN 0;
ELSE
IF LENGTH(IN_DATE)=14 THEN
DATETIME :=SUBSTR(IN_DATE,1,8);
HOU :=SUBSTR(IN_DATE,9,2);
MINU :=SUBSTR(IN_DATE,11,2);
SEC :=SUBSTR(IN_DATE,13,2);
ELSE
RETURN 0;
END IF;
END IF;
FLAG :=IS_DATE(DATETIME);
IF FLAG!=0 THEN
return FLAG;
END IF;
IF HOU NOT IN ('01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23') THEN
RETURN -2;
END IF;
IF MINU NOT IN ('01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26',
'27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50','51','52','53','54','55','56','57'
,'58','59','00') THEN
RETURN -3;
END IF;
IF SEC NOT IN ('01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26',
'27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50','51','52','53','54','55','56','57'
,'58','59','00') THEN
RETURN -4;
END IF;
RETURN 1;
END IS_DATETIME;
评论0
最新资源