Jerry,
I started doing the DS thing also, back on the S/36, and ran some tests 
against it.  I agree that the DS is faster.  Also, like you said, it is 
more understandable at a glance to see what is going on.  You only have to 
do 2 MOVEs and you have your date in the format you want.  And you don't 
have to remember how many zeros and where to put the decimal point in.:-)
Thanx,
Nick
Nick Radich
Sr. Programmer/Analyst
EPC Molding, Inc.
Direct  (320) 679-6683
Toll free  (800) 388-2155  ext. 6683
Fax  (320) 679-4516
nick_radich@xxxxxxxxxxxxxx
Jerry Adams <jerry@xxxxxxxxxxxxxxx> 
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
09/05/2007 04:10 PM
Please respond to
RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>
To
RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>
cc
Subject
Re: Those flippin dates
Pete,
As you found out, EVAL expressions don't like overflow.  The whole math 
technique was predicated on overflow (i.e., digits flying off into 
neverneverland on both the left (high) and right(low) order sides).  It 
will still work if you change it to:
    MMDDYY   MULT   10000.0001   YYMMDD
But the other options presented are probably more efficient.  I once did 
a test on the /36 of the math technique vs the data structure method and 
the DS method won.  Not too important for interactive stuff, but for 
batch against tons of data it made a big difference.  Plus it's probably 
more understandable to someone who never read or knew about the math 
method ("What the @#$% is that all about?!").
                 * Jerry C. Adams
*IBM System i Programmer/Analyst
B&W Wholesale Distributors, Inc.* *
voice
                 615.995.7024
fax
                 615.995.1201
email
                 jerry@xxxxxxxxxxxxxxx <mailto:jerry@xxxxxxxxxxxxxxx>
Pete Helgren wrote:
What would be the most expedient way to convert a 6.0 numeric field that 
represents a date in MMDDYY format to a 6.0 numeric field that 
represents a date in YYMMDD order?  The resultant numeric is used in an 
SQL statement comparing it to a numeric (not a date) field.  The old 
technique of  YYMMDD = MMDDYY * 10000.0001 appears not to work because 
the program is cranky at runtime about the result field not being large 
enough.
Since the compare is a numeric I figured that the math would be 
numeric.  Or, is using a date field and converting it to a numeric host 
variable for the SQL the way to go?
Pete Helgren
As an Amazon Associate we earn from qualifying purchases.