Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: Daylight Saving Code

Re: Daylight Saving Code

From: Jim Kennedy <kennedy-down_with_spammers_at_attbi.com>
Date: Thu, 12 Jun 2003 05:33:00 GMT
Message-ID: <fgUFa.1206020$F1.142726@sccrnsc04>


I've done this before and you are better off using a package. (I am not sure your code works, there were some dates during the late 70's where the daylight savings was something like January and Feb.) Also in a package you can declare some constants and thus if you are using it in an update statement it will be much more efficient. (the constants are private to the package body and thus initialized once per session when the package is first used - otherwise you are calling to_date to_char a zillion times per row in an update statement. (very inefficient) Jim

-- 
Replace part of the email address: kennedy-down_with_spammers_at_attbi.com
with family.  Remove the negative part, keep the minus sign.  You can figure
it out.
"Aruneesh Salhotra" <asalhotra_at_customink.com> wrote in message
news:a29eb1e7.0306110843.5c979d6e_at_posting.google.com...

> I created a oracle query which detects the start and end date for
> dayight saving. I eventually used this, and passed the current year so
> to detect start/end dates for daylight saving for each year.
>
> I wanted to share the same with everyone.
>
> select SYSDATE x, 0 r1 from dual where SYSDATE between (select
> decode(to_char(to_date('04/01/2003','MM/DD/YYYY'),'D'),1,
> to_date('04/01/2003','MM/DD/YYYY')+7, 2,
> to_date('04/01/2003','MM/DD/YYYY')+6, 3,
> to_date('04/01/2003','MM/DD/YYYY')+5, 4,
> to_date('04/01/2003','MM/DD/YYYY')+4, 5,
> to_date('04/01/2003','MM/DD/YYYY')+3, 6,
> to_date('04/01/2003','MM/DD/YYYY')+2,
> to_date('04/01/2003','MM/DD/YYYY')) sday1 from dual) and (select
> decode(to_char(to_date('09/01/2003','MM/DD/YYYY'),'D'),1,
> to_date('09/01/2003','MM/DD/YYYY')+7, 2,
> to_date('09/01/2003','MM/DD/YYYY')+6, 3,
> to_date('09/01/2003','MM/DD/YYYY')+5, 4,
> to_date('09/01/2003','MM/DD/YYYY')+4, 5,
> to_date('09/01/2003','MM/DD/YYYY')+3, 6,
> to_date('09/01/2003','MM/DD/YYYY')+2,
> to_date('09/01/2003','MM/DD/YYYY')) sday2 from dual);
Received on Thu Jun 12 2003 - 00:33:00 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US