I do exactly this... Some views join to the date_conv table 4-5 times to convert a variety of dates from decimal to date format.
I've never had any performance issues.
-----Original Message-----
From: MIDRANGE-L <midrange-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of VERNON HAMBERG Owner via MIDRANGE-L
Sent: Friday, September 1, 2023 3:38 PM
To: midrange-l@xxxxxxxxxxxxxxxxxx
Cc: VERNON HAMBERG Owner <vhamberg@xxxxxxxxxxxxxxx>; midrange-l@xxxxxxxxxxxxxxxxxx
Subject: RE: SQL dates and numeric columns
Hi Roger
I've been hearing and thinking about date dimension tables of late - the point - you probably know this already - is to have columns in the formats you use, have indexes over each of them in turn, then join to the appropriate column, which should use the index needed - result is very efficient, I'm told. I have to believe that for a single column, the JOIN has to be faster than any of the date conversion functions, or anything UDF we can write. I don't know what happens if you have many dates in a record that need to be converted, there'd have to be a JOIN for each date column, I suppose.
Interesting experiment comes to mind, eh?
Cheers
Vern
On Fri, 1 Sep, 2023 at 1:27 PM, Roger Harman <roger.harman@xxxxxxxxxxx> wrote:
To: midrange systems technical discussion
Or, consider a UDF for the conversions in lieu of the joins. Your SQL statement will be a lot cleaner.
Roger Harman
COMMON Certified Application Developer - ILE RPG on IBM i on Power
-----Original Message-----
From: MIDRANGE-L <midrange-l-bounces@xxxxxxxxxxxxxxxxxx<mailto:midrange-l-bounces@xxxxxxxxxxxxxxxxxx>> On Behalf Of Alan Campin
Sent: Friday, September 1, 2023 11:21 AM
To: Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxxxxxxxx<mailto:midrange-l@xxxxxxxxxxxxxxxxxx>>
Subject: Re: SQL dates and numeric columns
As I have previously recommended create a table using DDL with fields for
Date data type, date in ccyymmdd, numeric cyymmdd, mmddyy, mmddccyy and one
for century number, year number, month number and day number. Then write a
quick and dirty program to accept a range of dates to write.
Make sure you use DDL for high speed indexes. create the indexes when
creating the table.
Now you need a date converted just join to table and get converted to any
other format.
If you do with math SQL cannot optimize.
If you need example of table I can create one for you. Just let me know.
On Fri, Sep 1, 2023, 1:41 AM Dave <dfx1@xxxxxxxxxxxxxx<mailto:dfx1@xxxxxxxxxxxxxx>> wrote:
Hi,
Trying to do date operations on a physical file where the date is coded in
3 different numeric fields Y, M and D
1 - I created a view, can I do better than this :
date(trim(char(Y))!!'-'!!trim(char(M))!!'-'!!trim(char(D))) "MyDate"
?
2 - This works in an SQL session but the RPG compiler doesn't seem to like
the ' !' character. Any ideas ?
Thanks
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx<mailto:MIDRANGE-L@xxxxxxxxxxxxxxxxxx>
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx<mailto:MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx>
Before posting, please take a moment to review the archives
at https://archive.midrange.com/midrange-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx<mailto:support@xxxxxxxxxxxxxxxxxxxx> for any subscription related
questions.
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx<mailto:MIDRANGE-L@xxxxxxxxxxxxxxxxxx>
To subscribe, unsubscribe, or change list options,
visit:
https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx<mailto:MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx>
Before posting, please take a moment to review the archives
at
https://archive.midrange.com/midrange-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx<mailto:support@xxxxxxxxxxxxxxxxxxxx> for any subscription related questions.
As an Amazon Associate we earn from qualifying purchases.