Okay... It did convert without message...
I must be using the old reference for %DEC with second & third parameters
":{digits:decpos}".
Thanks for the info...
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of BMay@xxxxxxxxx
Sent: Friday, June 05, 2009 12:26 PM
To: RPG programming on the IBM i / System i
Subject: RE: Convert date from YYYYMMDD to CYYMMDD format
No you won't.
the following code works just fine:
dlongdate s 8 0 Inz(20080605)
dshortdate s 7 0
/Free
ShortDate = %Dec(%Date(LongDate:*ISO):*CYMD) ;
Dsply shortdate ;
Return ;
/End-Free
You have to think about this in pieces.
1. "%Date(LongDate:*ISO)" converts the original 8.0 field into a true
date. The length of the original no longer maters.
2. %Dec is converting a date into a number in *CYMD format. *CYMD format
is 7 digits long by definition. So the number generated fits the
ShortDate field.
Brian May
Project Lead
Management Information Systems
Garan, Incorporated
Starkville, Mississippi
Young i Professionals
http://www.youngiprofessionals.com
"Rex Capio" <rex_capio@xxxxxxxxxxxxxxxxxxxxx>
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
06/05/2009 11:02 AM
Please respond to
RPG programming on the IBM i / System i <rpg400-l@xxxxxxxxxxxx>
To
"'RPG programming on the IBM i / System i'" <rpg400-l@xxxxxxxxxxxx>
cc
Subject
RE: Convert date from YYYYMMDD to CYYMMDD format
You still need to convert it to character because the source and target
fields have different lengths (the former is 8.0 and latter is 7.0).
Otherwise you'll get the message "RNQ0103 - The target for a numeric
operation is too small to hold the result (C G D F)".
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of BMay@xxxxxxxxx
Sent: Friday, June 05, 2009 11:01 AM
To: RPG programming on the IBM i / System i
Subject: RE: Convert date from YYYYMMDD to CYYMMDD format
The conversion to character is only required if he is not on V5R3 or
better. At V5R3, the %DEC built-in function was updated to handle dates
directly.
Brian May
Project Lead
Management Information Systems
Garan, Incorporated
Starkville, Mississippi
Young i Professionals
http://www.youngiprofessionals.com
"Rex Capio" <rex_capio@xxxxxxxxxxxxxxxxxxxxx>
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
06/05/2009 09:58 AM
Please respond to
RPG programming on the IBM i / System i <rpg400-l@xxxxxxxxxxxx>
To
"'RPG programming on the IBM i / System i'" <rpg400-l@xxxxxxxxxxxx>,
<rpgnext@xxxxxxxxxxxx>
cc
Subject
RE: Convert date from YYYYMMDD to CYYMMDD format
You need to convert first the date to character then to decimal:
IDELNB = %dec(%char(%date(STARTDATE:*ISO):*CYMD0):7:0)
HTH
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Peter_Vidal@xxxxxxxx
Sent: Friday, June 05, 2009 10:23 AM
To: rpgnext@xxxxxxxxxxxx; rpg400-l@xxxxxxxxxxxx
Subject: Convert date from YYYYMMDD to CYYMMDD format
Hi list!
*BACKGROUND*
I have this line of code from Bob Cozzi's website that helps to convert a
date from YYYYMMDD to a YYMMDD format:
http://www.rpgiv.com/rpgivforum/view?SID=20070821133326694527&NRL=10&KW=myYY
YYMMDD
myYYMMDD = %char(%date(myYYYYMMDD:*ISO0) : *YMD0)
Due to the nature of my source and target fields formats (STARTDATE [8.0]
and IDELNB [7.0]), I am using %DEC. In addition, the target field format
must be CYYMMDD so I am using *CYMD0. As a result, I modified the line a
little bit as follows:
IDELNB = %dec(%date(STARTDATE:*ISO0):*CYMD0)
*PROBLEM*
The issue that I have is that when I compile I have this message:
RNF7514 20 2 A Date, Time or Timestamp separator is not allowed with
a numeric entry.
These 2 errors are pointing to 2 different lines so that is why I have
errors listed but if I have this one cleared up, I will know how to
resolve the other one.
What I am doing wrong?
TIA,
PETER VIDAL
MAPICS IT TECHNICAL SUPPORT TEAM / SR SYSTEM ANALYST
10540 Ridge Rd., Suite 203, New Port Richey, FL 34654-5111
Tel:727-849-9999, x2414 /// Fax:727-815-3120
WWW.PALL.COM
"It's not the years in your life that count. It's the life in your years."
Abraham Lincoln (1809 - 1865)
----------------------------------------------------------------------------
----
Attention:
This communication may contain information that is confidential,
privileged and/or exempt from disclosure under applicable law.
If you are not the intended recipient, please notify the sender
immediately and delete the original, all attachments, and all
copies of this communication.
----------------------------------------------------------------------------
----
As an Amazon Associate we earn from qualifying purchases.