Focal Point
[SOLVED] month convert

This topic can be found at:
https://forums.informationbuilders.com/eve/forums/a/tpc/f/7971057331/m/5787008276

September 24, 2014, 01:45 PM
Jing grace
[SOLVED] month convert
I need to convert a parameter to pull the previous 2nd month. current month is 09 14, I need to pull 07 14/ I used below convert, but somthing not right:

&MTH --072014
I want &MTH1 is 062014

-SET &MTH1 = DATECVT(DATEADD(DATECVT(&MTH,'I6YYMM','YYMM'),'M', -1), 'YYMM','I6YYMM');

This message has been edited. Last edited by: <Kathryn Henning>,


WebFOCUS 7.6
Windows, All Outputs
September 24, 2014, 02:39 PM
Shakila Subhan
-SET &THISYEAR=EDIT(&YYMD, '9999$$$$');
-SET &THISMONTH=EDIT(&YYMD, '$$$$99$$');
-SET &LASTMONTH=IF &THISMONTH EQ 01 THEN 12 ELSE (&THISMONTH - 2);
-SET &LASTMONTHA = IF &LASTMONTH LT 10 THEN '0' || EDIT(&LASTMONTH) ELSE EDIT(&LASTMONTH);
-SET &YEAR=IF &THISMONTH EQ 01 THEN (&THISYEAR - 1) ELSE &THISYEAR;
-SET &THISMONTHDAY=EDIT(&THISMONTH) || EDIT(&YEAR);
-SET &LASTMONTHDAY=EDIT(&LASTMONTHA) || EDIT(&YEAR);
-TYPE &THISMONTHDAY
-TYPE &LASTMONTHDAY
-EXIT


WebFOCUS 8.0.08 - BI Portal, Developer Studio, App Studio, Excel, PDF, Active Formats and HTML5
Windows, All Outputs
September 24, 2014, 03:11 PM
gfink01
-SET &MTH1 = '072014' ;

-* You were very close ... DATEADD takes a full smart like MDYY or YYMD Like so



-SET &MTH1 = DATECVT( DATEADD( DATECVT ( &MTH, 'I6MYY','MDYY') , 'M' , -1 ), 'MDYY' , 'I6MYY') ;


-* you can however just add or subtract against a non 'Day' Based date like so :


-SET &MTH1 = DATECVT( DATECVT ( &MTH, 'I6MYY','MYY') -1 , 'MYY' ,'I6MYY') ;


WebFOCUS 7.6
Windows, All Outputs
September 24, 2014, 03:48 PM
Jing grace
the code worked. it came out 62014. how can I make it look like 062014?


WebFOCUS 7.6
Windows, All Outputs
September 24, 2014, 04:29 PM
Francis Mariani
Output an alpha date:

-SET &MTH1 = DATECVT( DATECVT ( &MTH, 'I6MYY','MYY') -2 , 'MYY' ,'A6MYY') ;


In the future, please be more consistent in your question. In your original post, you state "previous 2nd month. current month is 09 14, I need to pull 07 14", then you state "&MTH --072014, I want &MTH1 is 062014", then you show code "-SET &MTH1 = DATECVT(DATEADD(DATECVT(&MTH,'I6YYMM','YYMM'),'M', -1), 'YYMM','I6YYMM');" - first you want to subtract two months, then 1 month. You show dates as Month/Year, but your code is Year/Month...


Francis


Give me code, or give me retirement. In FOCUS since 1991

Production: WF 7.7.05M, Dev Studio, BID, MRE, WebSphere, DB2 / Test: WF 8.1.05M, App Studio, BI Portal, Report Caster, jQuery, HighCharts, Apache Tomcat, MS SQL Server
September 25, 2014, 09:37 AM
Jing grace
IT worked very well. Thank you all for your help!


WebFOCUS 7.6
Windows, All Outputs
September 25, 2014, 06:49 PM
Waz
FYI,

There is also a legacy function called AYM that you could have used.

AYM(indate, months, output_format)

indate: I4, I4YM, I6 or I6YYM

months: Integer

output_format: I4YM or I6YYM


Waz...

Prod:WebFOCUS 7.6.10/8.1.04Upgrade:WebFOCUS 8.2.07OS:LinuxOutputs:HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!