You should always work with dates/times/numbers in internal format and only
convert them to external format for display.
Wherever ST.DATE came from, it should have been converted using ICONV:
ST.DATE=ICONV(ST.DATE,"D")
and have a value of 16091 (assuming that the "12" means "2012" and not "1912").
The comparison would be
IF ST.DATE < ICONV("12-31-2011","D") THEN
The actual data stored in a file should be in internal format--never ever
external.
When using query LIST/SELECT, make sure the dictionary is right justified and
has a date conversion:
0001 D
0002 1
0003 D4/
0004 DATE
0005 10R
or in a 10-line dict:
0001 A
0002 1
0003 date
0004
0005
0006
0007 D4/
0008
0009 R
0010 10
If the date conversion is being done by an type expression instead of a
conversion, or by a correlative on the 8th line of a 10-line dict instead of by
a conversion on line 7, queries will likely not work. When you use a query like:
SELECT INVOICE-FILE WITH DATE.DUE < "01/01/2012"
the query processor uses the conversion code to convert "01/01/2012" into
internal format, and then compare against the internal data on file. If you
don't have data in internal format, then this is just a string comparison, and
"01/01/2012" is NOT equal to "01/01/12", and "02/01/2000" is great than
"01/01/2012".
On Jan 24, 2012, at 8:17 AM, Barry Rogen wrote:
>
> We have been experiencing this quite a bit and am not sure why we are getting
> mis-comparisions. Below is a simplified example of our issue
>
> B$CHECK.855.SENT: 51: IF ST.DATE # "" THEN
> B$CHECK.855.SENT: 52: IF ST.DATE < "12-31-11" THEN
> B$CHECK.855.SENT: 53: PRINT PL:"Date is less than
> 12-31-11...":
>
> : ST.DATE/
> STRING: T r L=8 `01-20-12'
>
> We have this issue with programs and with SELECT statements throughout. When
> you qualify a date for this year to a date from 2011 it screws up.
>
>
> Barry Rogen
> Senior Programmer/Analyst
> PNY Technologies, Inc.
> (973) 560-5327
> [email protected]<mailto:[email protected]>
>
> ------------------------------------------------------------------------------------------------------------------------
> We are continually faced with great opportunities brilliantly
> disguised as insoluble problems.
> John W Gardner
> ------------------------------------------------------------------------------------------------------------------------
> [http://thinkbeforeprinting.org/struct/signature-1.gif]
>
>
>
>
> ________________________________
> NOT INTENDED AS A SUBSTITUTE FOR A WRITING
> NOTHING IN THIS E-MAIL, IN ANY E-MAIL THREAD OF WHICH IT MAY BE A PART, OR IN
> ANY ATTACHMENTS THERETO, SHALL CONSTITUTE A BINDING CONTRACT, OR ANY
> CONTRACTUAL OBLIGATION BY PNY, OR ANY INTENT TO ENTER INTO ANY BINDING
> OBLIGATIONS, NOTWITHSTANDING ANY ENACTMENT OF THE UNIFORM ELECTRONIC
> TRANSACTIONS ACT, THE FEDERAL E-SIGN ACT, OR ANY OTHER STATE OR FEDERAL LAW
> OF SIMILAR SUBSTANCE OR EFFECT. THIS EMAIL MESSAGE, ITS CONTENTS AND
> ATTACHMENTS ARE NOT INTENDED TO REPRESENT AN OFFER OR ACCEPTANCE OF AN OFFER
> TO ENTER INTO A CONTRACT. NOTHING IN THIS E-MAIL, IN ANY E-MAIL THREAD OF
> WHICH IT MAY BE A PART, OR IN ANY ATTACHMENTS THERETO SHALL ALTER THIS
> DISCLAIMER.
>
> This e-mail message from PNY Technologies, Inc. is for the sole use of the
> intended recipient(s) and may contain confidential and privileged
> information. Any unauthorized review, use, disclosure or distribution is
> prohibited. If you are not the intended recipient, please contact the sender
> by reply e-mail and destroy all copies of the original message.
> _______________________________________________
> U2-Users mailing list
> [email protected]
> http://listserver.u2ug.org/mailman/listinfo/u2-users
_______________________________________________
U2-Users mailing list
[email protected]
http://listserver.u2ug.org/mailman/listinfo/u2-users