%date()
To populate a date variable from something other than a literal string, you have to use the IBM-supplied %date BIF. If used with no parameters, %date will return the current system date.
1 2 3 4 5 6 7 | d myDate s d /free myDate = %date (); // myDate = *the current system date* *inlr = *on ; /end-free |
In this case we need to inform the %date BIF what the format of the incoming numeric should correspond to:
1 2 3 4 5 6 7 8 9 | d myDate s d d myDate8 s 8 0 inz (05182011) /free myDate = %date ( myDate8 : *USA ); dsply myDate ; *inlr = *on ; /end-free |
%char()
%CHAR(expression{:format})
%CHAR converts the value of the expression from graphic, UCS-2, numeric, date, time or timestamp data to type character. The converted value remains unchanged, but is returned in a format that is compatible with character data.
%dec()
the %DEC function converts a string expression to a packed decimal number, with a specified precision:
%DEC(expression:digits:decimals)
Step 1 - Convert the data into a date
Input data is Numeric
1 2 | $date_A = %date ($num_A:*ymd); // Output_date = %date(Numeric_Input:Input_format) |
Input data is Character
1 2 | $date_A = %date ($char_A:*ymd/); // Output_date = %date(Charater_Input:Input_format and separator) |
Step 2 - Convert to another format using %char()
1 2 | $char_B = %char ($date_A:*usa/); // Character_output = %date(Date_Input:Output_format and separator) |
Step 3 - If need the output to be numeric then use %dec()
1 2 | $num_E = %dec ( %char ($date_A:*usa/):8:0); // Numeric_output = %dec(Character_Input:length:0) |
Sample Cheat sheets for date conversion
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | // numeric to numeric... $num_B = %dec ( %char ( %date ($num_A:*ymd):*cymd0):7:0); // yymmdd to cyymmdd $num_C = %dec ( %char ( %date ($num_A:*ymd):*iso0):8:0); // yymmdd to ccyymmdd $num_D = %dec ( %char ( %date ($num_A:*ymd):*mdy0):6:0); // yymmdd to mmddyy $num_E = %dec ( %char ( %date ($num_A:*ymd):*usa0):8:0); // yymmdd to mmddccyy $num_A = %dec ( %char ( %date ($num_B:*cymd):*ymd0):6:0); // cyymmdd to yymmdd $num_C = %dec ( %char ( %date ($num_B:*cymd):*iso0):8:0); // cyymmdd to ccyymmdd $num_D = %dec ( %char ( %date ($num_B:*cymd):*mdy0):6:0); // cyymmdd to mmddyy $num_E = %dec ( %char ( %date ($num_B:*cymd):*usa0):8:0); // cyymmdd to mmddccyy $num_A = %dec ( %char ( %date ($num_C:*iso):*ymd0):6:0); // ccyymmdd to yymmdd $num_B = %dec ( %char ( %date ($num_C:*iso):*cymd0):7:0); // ccyymmdd to cyymmdd $num_D = %dec ( %char ( %date ($num_C:*iso):*mdy0):6:0); // ccyymmdd to mmddyy $num_E = %dec ( %char ( %date ($num_C:*iso):*usa0):8:0); // ccyymmdd to mmddccyy $num_A = %dec ( %char ( %date ($num_D:*mdy):*ymd0):6:0); // mmddyy to yymmdd $num_B = %dec ( %char ( %date ($num_D:*mdy):*cymd0):7:0); // mmddyy to cyymmdd $num_C = %dec ( %char ( %date ($num_D:*mdy):*iso0):8:0); // mmddyy to ccyymmdd $num_E = %dec ( %char ( %date ($num_D:*mdy):*usa0):8:0); // mmddyy to mmddccyy $num_A = %dec ( %char ( %date ($num_E:*usa):*ymd0):6:0); // mmddccyy to yymmdd $num_B = %dec ( %char ( %date ($num_E:*usa):*cymd0):7:0); // mmddccyy to cyymmdd $num_C = %dec ( %char ( %date ($num_E:*usa):*iso0):8:0); // mmddccyy to ccyymmdd $num_D = %dec ( %char ( %date ($num_E:*usa):*mdy0):6:0); // mmddccyy to mmddyy // character to character... $char_B = %char ( %date ($char_A:*ymd/):*usa/); // 'yy/mm/dd' to 'mm/dd/ccyy' $char_C = %char ( %date ($char_A:*ymd/):*mdy/); // 'yy/mm/dd' to 'mm/dd/yy' $char_A = %char ( %date ($char_B:*usa/):*ymd/); // 'mm/dd/ccyy' to 'yy/mm/dd' $char_C = %char ( %date ($char_B:*usa/):*mdy/); // 'mm/dd/ccyy' to 'mm/dd/yy' $char_A = %char ( %date ($char_C:*mdy/):*ymd/); // 'mm/dd/yy' to 'yy/mm/dd' $char_B = %char ( %date ($char_C:*mdy/):*usa/); // 'mm/dd/yy' to 'mm/dd/ccyy' |
No comments:
Post a Comment
NO JUNK, Please try to keep this clean and related to the topic at hand.
Comments are for users to ask questions, collaborate or improve on existing.