From a13c1af8057934f9ad64ddb41594455e4a6fadfd Mon Sep 17 00:00:00 2001 From: Alex Zaw Date: Wed, 25 Feb 2026 23:00:49 +0000 Subject: [PATCH] Update Function CYMD2DATE --- CISTOOLS/Functions/CYMD2DATE.sql | 53 +++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/CISTOOLS/Functions/CYMD2DATE.sql b/CISTOOLS/Functions/CYMD2DATE.sql index 25e0400..ee4c9fc 100644 --- a/CISTOOLS/Functions/CYMD2DATE.sql +++ b/CISTOOLS/Functions/CYMD2DATE.sql @@ -1 +1,52 @@ -@@kkkk@^@ % %@@@@K@M@ %m@Mk@]@@@@@]@ %@@@@ %@@ %@K@ %@@ %@@@ %@@@@ %@@@@~@\@k@ %@~@\@k@ %@~@\@k@ %@~@\@k@ %@~@Mk@k@]@k@ %@~@@k@ %@~@\@k@ %@~@\@k@ %@~@\@@@ %@ %@m@@M@@]@^@ %@@@@@@@^@ %@m@~@ %@ %@ %@M@@M@m@k@@k@}}@]@k@@]@~@}}@ %@}}@OO@@M@@M@m@k@@k@}}@]@k@@]@ %@ %@M@@M@m@k@@k@}}@]@k@@]@n~@}}@ %@ %M@@M@@M@@M@m@k@@k@}}@]@k@@]@]@N@@]@OO@ %@M@@M@m@k@@k@}}@]@k@@]@ %@^@ %``@m@@@@@@@@@@ %``@ŧ@@@@@@@ %@m@M@m@k@}}@]@^@ %@@^@ % %@@@@@K@ %M@m@@}@ā@Ɩ}@]@^@ % %@@@@K@ %@}è@@ā}@^@ % %@@k@@@@ %@@@K@ %@@@@@^@ % %@@@@ %@@@K@ %@@^@ % % \ No newline at end of file +SET PATH "QSYS","QSYS2","SYSPROC","SYSIBMADM","QTEMP" ; + +CREATE OR REPLACE FUNCTION CISTOOLS.CYMD2DATE ( + CYMD_DATE NUMERIC(7, 0) DEFAULT 0 ) + RETURNS DATE + LANGUAGE SQL + SPECIFIC CISTOOLS.CYMD2DATE + NOT DETERMINISTIC + MODIFIES SQL DATA + CALLED ON NULL INPUT + SET OPTION ALWBLK = *ALLREAD , + ALWCPYDTA = *OPTIMIZE , + COMMIT = *NONE , + DBGVIEW = *SOURCE , + DECRESULT = (31, 31, 00) , + DFTRDBCOL = QTEMP , + DYNDFTCOL = *NO , + DYNUSRPRF = *USER , + SRTSEQ = *HEX + BEGIN +DECLARE CHAR_DATE CHAR ( 8 ) ; +DECLARE CONTINUE HANDLER FOR SQLEXCEPTION RETURN NULL ; +SET CHAR_DATE = +CASE +WHEN +LEFT ( LPAD ( CYMD_DATE , 7 , '0' ) , 1 ) = '0' +THEN '19' || RIGHT ( LPAD ( CYMD_DATE , 7 , '0' ) , 6 ) +WHEN +LEFT ( LPAD ( CYMD_DATE , 7 , '0' ) , 2 ) >= '1' +THEN +( INT ( LEFT ( LPAD ( CYMD_DATE , 7 , '0' ) , 1 ) ) + 19 ) || +RIGHT ( LPAD ( CYMD_DATE , 7 , '0' ) , 6 ) +END ; +-- TO_DATE will validate the date and throw exception if invalid +-- Exception handler will catch and return NULL +RETURN TO_DATE ( CHAR_DATE , 'YYYYMMDD' ) ; +END ; + +COMMENT ON PARAMETER SPECIFIC FUNCTION CISTOOLS.CYMD2DATE +( CYMD_DATE IS 'CYMD Date Format' ) ; + +LABEL ON SPECIFIC FUNCTION CISTOOLS.CYMD2DATE + IS 'Cymd To Date' ; + +GRANT ALTER , EXECUTE +ON SPECIFIC FUNCTION CISTOOLS.CYMD2DATE +TO AMAPICS WITH GRANT OPTION ; + +GRANT EXECUTE +ON SPECIFIC FUNCTION CISTOOLS.CYMD2DATE +TO PUBLIC ; +