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.