SQL State 01506 is a warning (like all SQL States beginning with '01' - or
positive SQLCODEs).
... and SQL 01506 means: An adjustment was made to a DATE or TIMESTAMP value
to correct an invalid date resulting from an arithmetic operation.
If a invalid "calculated" date is returned, it is always corrected to the
last day of the months.
So you will not get an invalid date.
Mit freundlichen Grüßen / Best regards
Birgitta Hauser
"Shoot for the moon, even if you miss, you'll land among the stars." (Les
Brown)
"If you think education is expensive, try ignorance." (Derek Bok)
"What is worse than training your staff and losing them? Not training them
and keeping them!"
?Train people well enough so they can leave, treat them well enough so they
don't want to.? (Richard Branson)
-----Original Message-----
From: RPG400-L <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of Justin
Taylor
Sent: Freitag, 23. Juli 2021 23:28
To: rpg400-l@xxxxxxxxxxxxxxxxxx
Subject: SQL date math & April 31st
I have some date calculations in embedded SQL within an RPG program. It
boils down to this:
values(cast('2021-07-31' as date) - 3 months)
That would give April 31st, which doesn't exist. The value returned is
'2021-04-30', with a SQLSTATE of 01506. Is there a clean way to handle
this? If not, can I rely on the date value to be correct so I can simply
ignore 01506?
TIA
--
This is the RPG programming on IBM i (RPG400-L) mailing list To post a
message email: RPG400-L@xxxxxxxxxxxxxxxxxx To subscribe, unsubscribe, or
change list options,
visit:
https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at
https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our affiliate link:
https://amazon.midrange.com
As an Amazon Associate we earn from qualifying purchases.