Focal Point
[SOLVED] -SET for a DATEADD

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

February 18, 2020, 05:48 PM
Lynsi
[SOLVED] -SET for a DATEADD
I am trying to find the month value only for the previous month. Example current month is 2, so I want to return 1.

I am using the following syntax, but its not returning the 1.
-SET &PREV_MONTH = DATEADD(DTPART(DT_CURRENT_DATE(),MONTH), 'M', -1);

-SET &PREV_MONTH = (DTPART(DT_CURRENT_DATE(),MONTH);
This returns 2, so what would I need to do to it, to return 1?

This message has been edited. Last edited by: FP Mod Chuck,


WebFOCUS 7.7 and WebFOCUS 8
Windows, All Outputs
February 18, 2020, 06:09 PM
Waz
Would it be easier to use &DATEYYMD instead of DTPART(DT_CURRENT_DATE(),MONTH) ?

Check the Documentation


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!

February 19, 2020, 08:49 AM
dbeagan
Generally it is good to use the date functions, but maybe in this situation you can simply:

-SET &PREV_MONTH = IF &DATEM EQ 1 THEN 12 ELSE &DATEM - 1;



WebFOCUS 8.2.06
February 19, 2020, 09:39 AM
jfr99
How about this ...

-SET &PREV_MONTH = DTPART(DTADD(DT_CURRENT_DATE(), MONTH, -1), MONTH);


or this ...

-SET &PREV_MONTH = DATECVT((DATEADD((DATECVT (&YYMD, 'I8YYMD', 'YYMD')),'M', -1)), 'YYMD','M');



WebFocus 8.201M, Windows, App Studio
February 20, 2020, 08:17 AM
jgelona
This will do it.

-SET &CURYM=&YYMD/100;
-SET &PRVYM=AYM(&CURYM,-1,'I6YYM');
-SET &PRVM=EDIT(&PRVYM,'$$$$99');

You have to remember that in Dialogue Manager, all variable are strings. To use Date Functions like DTPART, DATEADD, DATEMOV, etc., you have to use a smart date. This is done using DATECVT. Another way is to use DEFINE FUNCTION to create versions of these Date Functions. We use versions of DATEMOV, DATEADD and DATEDIF for use with Dialogue Manager. See the link below. One can do anything with these that they can do in TABLE.

Date Functions for DM

Contrary to what Little Caesar's says about their delivery, DEFINE FUNCTION is the best thing since sliced bread.

This message has been edited. Last edited by: jgelona,


In FOCUS since 1985. Prod WF 8.0.08 (z90/Suse Linux) DB (Oracle 11g), Self Serv, Report Caster, WebServer Intel/Linux.