As of December 1, 2020, Focal Point is retired and repurposed as a reference repository. We value the wealth of knowledge that's been shared here over the years. You'll continue to have access to this treasure trove of knowledge, for search purposes only. Moving forward, myibi is our community platform to learn, share, and collaborate. We have the same Focal Point forum categories in myibi, so you can continue to have all new conversations there. If you need access to myibi, contact us at myibi@ibi.com and provide your corporate email address, company, and name.
Connect to myibi
Read-Only TopicGo
New
Search
Notify
Admin
New PM!
Virtuoso posted July 01, 2014 11:19 AM
Hi,
I know that it,s probably been discussed many times, but I can't find it.
How can I have the proper previous day when we're the first of the month ?
I've used:
-SET &PDAY = DATEADD (&YYMD, 'DAY', -1);
-TYPE &PDAY
But it gives me 20140700 when &YYMD = 20140701, it's supposed to be 20140630...
I also tried with DATEMOV(&YYMD, 'WD-') but it stays the same date.
Thanks for your help and reminder :-)
This message has been edited. Last edited by: MartinY , July 01, 2014 12:56 PM WF versions : Prod 8.2.04M gen 33, Dev 8.2.04M gen 33, OS : Windows, DB : MSSQL, Outputs : HTML, Excel, PDFIn Focus since 2007
Posts: 2410 | Location: Montreal Area, Qc, CA | Registered: September 25, 2013
IP
Platinum Member Hi,
Take a look at the AYMD function ... run this:
-*
-SET &PDAY = DATEADD (&YYMD, 'DAY', -1);
-SET &N_PDAY = AYMD (&YYMD, -1, 'I8YYMD');
-*
-TYPE YYMD ------- &YYMD
-TYPE PDAY ------- &PDAY
-TYPE N_PDAY ----- &N_PDAY
WebFocus 8.201M, Windows, App Studio
Posts: 227 | Location: Lincoln Nebraska | Registered: August 12, 2008
IP
Gold member jfr99's code is much prettier but here goes my aproach anyway:
-SET &PDAY_V2 = &YYMD;
-SET &PDAY_V2 = DATECVT(&PDAY_V2.EVAL, 'I8YYMD', 'YYMD');
-SET &PDAY_V2 = DATEADD(&PDAY_V2,'D',-1);
-SET &PDAY_V2 = DATECVT(&PDAY_V2.EVAL, 'YYMD', 'I8YYMD');
-SET &PDAY_V2 = EDIT(&PDAY_V2,'9999/99/99');
-TYPE &PDAY_V2
WebFOCUS App Studio 8103 Windows7 All outputs
Posts: 58 | Location: London, UK | Registered: May 09, 2011
IP
Virtuoso Thanks, I knew that I would find an answer :-)
WF versions : Prod 8.2.04M gen 33, Dev 8.2.04M gen 33, OS : Windows, DB : MSSQL, Outputs : HTML, Excel, PDFIn Focus since 2007
Posts: 2410 | Location: Montreal Area, Qc, CA | Registered: September 25, 2013
IP
Platinum Member Here's another way:
-SET &PRV_YYMD = DATECVT((DATEADD((DATECVT (&YYMD, 'I8YYMD', 'YYMD')),'D', -1)), 'YYMD','I8YYMD');
WebFocus 8.201M, Windows, App Studio
Posts: 227 | Location: Lincoln Nebraska | Registered: August 12, 2008
IP
Expert DATEADD only works on Smartdates.
As &YYMD is just a number and not a date, you need to use AYMD, as works on legacy dates.
Waz... Prod: WebFOCUS 7.6.10/8.1.04 Upgrade: WebFOCUS 8.2.07 OS: Linux Outputs: HTML, PDF, Excel, PPT In Focus since 1984 Pity the lost knowledge of an old programmer!
Posts: 6349 | Location: 33°49'23.0"S, 151°11'41.0"E | Registered: October 31, 2006
IP
Please Wait. Your request is being processed...
Read-Only TopicCopyright © 1996-2020 Information Builders