Thanks all, but the problems continue !
Ok, I've got my month, in this case gMs = '04'.
I'm using it in embedded SQL like this :
EXEC SQL
Select zones From file where
DMS <= : gMs;
If I copy/paste my sql statement in an interactive session, I get the expected result.
However the program extracts the transactions where DMS is less than gMs. So I get the expected result minus the transactions for April.
Have I got the syntax wrong?
Thanks again everyone for your help!
-----Message d'origine-----
De : rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] De la part de J.Beckeringh@xxxxxxxxxxxxxxxxxxxxxxxxxx
Envoyé : mardi 17 juin 2008 16:52
À : RPG programming on the AS400 / iSeries
Objet : RE: Get month from date zone
David,
Charles already gave you the tip to use %dec.
%Subdt returns an unsigned integer. Using %editc with 'X' will probably result in '000000004'.
So you have several options:
1. Charles' suggestion: use %dec to convert the integer to a 2-digit
decimal:
gMs = %editc(%dec(%SUBDT ( AFinDt : *MONTHS ) :2 : 0) 'X'); 2. Use %char (I get '4' for April; not '40') gMs = %char(%SUBDT ( AFinDt : *MONTHS )); 3. Use EVALR EVALR gMs = %editc(%SUBDT ( AFinDt : *MONTHS )) 'X');
Joep Beckeringh
David FOXWELL wrote on 17-06-2008 16:15:23:
Francis,
I said I tried that and got '00'!
I've got round it with this :
D wMs S 2S 0
wMs = %SUBDT ( AFinDt : *MONTHS );
gMs = %EDITC ( wMs : 'X' );
But surely there's a neater way?
--
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at
http://archive.midrange.com/rpg400-l.
As an Amazon Associate we earn from qualifying purchases.