Focal Point Banner
Community Center Education Summit Technical Support User Groups
Let's Get Social!

Facebook Twitter LinkedIn YouTube
Focal Point    Focal Point Forums  Hop To Forum Categories  iWay Software Product Forum on Focal Point    [SOLVED] -SET for a DATEADD
Go
New
Search
Notify
Tools
Reply
  
[SOLVED] -SET for a DATEADD
 Login/Join
 
Gold member
posted
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
 
Posts: 52 | Registered: August 17, 2010Reply With QuoteReport This Post
Expert
posted Hide Post
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.06OS:LinuxOutputs:HTML, PDF, Excel, PPT
In Focus since 1984
Know The Code

 
Posts: 6270 | Location: 33°49'23.0"S, 151°11'41.0"E | Registered: October 31, 2006Reply With QuoteReport This Post
Platinum Member
posted Hide Post
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;


WF 8.2.06
Win10 / IE11
AHTML EXL2K PDF
 
Posts: 173 | Registered: October 19, 2010Reply With QuoteReport This Post
Platinum Member
posted Hide Post
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
 
Posts: 225 | Location: Lincoln Nebraska | Registered: August 12, 2008Reply With QuoteReport This Post
Master
posted Hide Post
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.
 
Posts: 952 | Location: Oklahoma City | Registered: October 27, 2006Reply With QuoteReport This Post
  Powered by Social Strata  
 

Focal Point    Focal Point Forums  Hop To Forum Categories  iWay Software Product Forum on Focal Point    [SOLVED] -SET for a DATEADD

Copyright © 1996-2018 Information Builders, leaders in enterprise business intelligence.