当前位置:Gxlcms > 数据库问题 > oracle的日期格式转换

oracle的日期格式转换

时间:2021-07-01 10:21:17 帮助过:4人阅读

CREATE OR REPLACE FUNCTION F_IRT_DATE_YYYYMMDD(ENTER VARCHAR2)

/****
*生效日期的格式为YYYYMMDD,输入日期格式为:16-JUL-15( 日期-月份-年)
*例如:20151231
*
*
****/
RETURN VARCHAR2 IS
NIENDATE DATE;
NUM VARCHAR2(3);
INPUT_CHAR VARCHAR2(32) := ENTER;
BEGIN
/*
JAN-01
FEB-02
MAR-03
APR-04
MAY-05
JUN-06
JUL-07
AUG-08
SEP-09
OCT-10
NOV-11
DEC-12
*/

SELECT SUBSTR(INPUT_CHAR,4,3) INTO NUM FROM DUAL;
IF NUM = ‘JAN‘ THEN
NIENDATE := TO_DATE(‘20‘||SUBSTR(INPUT_CHAR,8,2)||‘01‘||SUBSTR(INPUT_CHAR,1,2),‘YYYYMMDD‘);
ELSIF NUM = ‘FEB‘ THEN
NIENDATE := TO_DATE(‘20‘||SUBSTR(INPUT_CHAR,8,2)||‘02‘||SUBSTR(INPUT_CHAR,1,2),‘YYYYMMDD‘);
ELSIF NUM = ‘MAR‘ THEN
NIENDATE := TO_DATE(‘20‘||SUBSTR(INPUT_CHAR,8,2)||‘03‘||SUBSTR(INPUT_CHAR,1,2),‘YYYYMMDD‘);
ELSIF NUM = ‘APR‘ THEN
NIENDATE := TO_DATE(‘20‘||SUBSTR(INPUT_CHAR,8,2)||‘04‘||SUBSTR(INPUT_CHAR,1,2),‘YYYYMMDD‘);
ELSIF NUM = ‘MAY‘ THEN
NIENDATE := TO_DATE(‘20‘||SUBSTR(INPUT_CHAR,8,2)||‘05‘||SUBSTR(INPUT_CHAR,1,2),‘YYYYMMDD‘);
ELSIF NUM = ‘JUN‘ THEN
NIENDATE := TO_DATE(‘20‘||SUBSTR(INPUT_CHAR,8,2)||‘06‘||SUBSTR(INPUT_CHAR,1,2),‘YYYYMMDD‘);
ELSIF NUM = ‘JUL‘ THEN
NIENDATE := TO_DATE(‘20‘||SUBSTR(INPUT_CHAR,8,2)||‘07‘||SUBSTR(INPUT_CHAR,1,2),‘YYYYMMDD‘);
ELSIF NUM = ‘AUG‘ THEN
NIENDATE := TO_DATE(‘20‘||SUBSTR(INPUT_CHAR,8,2)||‘08‘||SUBSTR(INPUT_CHAR,1,2),‘YYYYMMDD‘);
ELSIF NUM = ‘SEP‘ THEN
NIENDATE := TO_DATE(‘20‘||SUBSTR(INPUT_CHAR,8,2)||‘09‘||SUBSTR(INPUT_CHAR,1,2),‘YYYYMMDD‘);
ELSIF NUM = ‘OCT‘ THEN
NIENDATE := TO_DATE(‘20‘||SUBSTR(INPUT_CHAR,8,2)||‘10‘||SUBSTR(INPUT_CHAR,1,2),‘YYYYMMDD‘);
ELSIF NUM = ‘NOV‘ THEN
NIENDATE := TO_DATE(‘20‘||SUBSTR(INPUT_CHAR,8,2)||‘11‘||SUBSTR(INPUT_CHAR,1,2),‘YYYYMMDD‘);
ELSIF NUM = ‘DEC‘ THEN
NIENDATE := TO_DATE(‘20‘||SUBSTR(INPUT_CHAR,8,2)||‘12‘||SUBSTR(INPUT_CHAR,1,2),‘YYYYMMDD‘);
END IF;
RETURN(NIENDATE);


END F_IRT_DATE_YYYYMMDD;

oracle的日期格式转换

标签:

人气教程排行