SQLで「年度」を求める
「YYYY/MM/DD」から「年度」を求めるSQLを書いた。
ORACLEのファンクション。
/*------------------------------------
関数名称:FN_GET_KI
機能概要:年度を取得する
引数 :YYYYMMDD
戻り値 :年度
-------------------------------------*/
FUNCTION FN_GET_KI(P_YMD IN VARCHAR2)
RETURN VARCHAR2
AS
-- 変数定義
P_NENDO VARCHAR2(3);
BEGIN
SELECT
DECODE(
TO_CHAR(TO_DATE(P_YMD,'YYYY/MM/DD'),'Q')
,'1',TO_CHAR(ADD_MONTHS(TO_DATE(P_YMD,'YYYY/MM/DD'),-12),'YYYY')
,SUBSTRB(P_YMD,1,4)
)
INTO P_NENDO
FROM DUAL;
RETURN P_NENDO;
EXCEPTION
WHEN OTHERS THEN
RETURN '**';
END FN_GET_KI;
ORACLEのファンクション。
/*------------------------------------
関数名称:FN_GET_KI
機能概要:年度を取得する
引数 :YYYYMMDD
戻り値 :年度
-------------------------------------*/
FUNCTION FN_GET_KI(P_YMD IN VARCHAR2)
RETURN VARCHAR2
AS
-- 変数定義
P_NENDO VARCHAR2(3);
BEGIN
SELECT
DECODE(
TO_CHAR(TO_DATE(P_YMD,'YYYY/MM/DD'),'Q')
,'1',TO_CHAR(ADD_MONTHS(TO_DATE(P_YMD,'YYYY/MM/DD'),-12),'YYYY')
,SUBSTRB(P_YMD,1,4)
)
INTO P_NENDO
FROM DUAL;
RETURN P_NENDO;
EXCEPTION
WHEN OTHERS THEN
RETURN '**';
END FN_GET_KI;