Avatar billede dp2001 Juniormester
03. september 2003 - 11:22 Der er 4 kommentarer og
1 løsning

Dagsnummer + helligdage i SQL

Findes der nogen funktion eller lignende i Oracle SQL, der sikrer at man ikke rammer ind i en lørdag, søndag eller helligdag (dansk)?

Jeg vil gerne undgå at ramme ind i en sådan ifb. med at jeg siger (date + 21).
Avatar billede dancni Nybegynder
04. september 2003 - 11:55 #1
Det er nemt at skrive en funktion som undersøger for 'lør','søn', men der findes ingen skudsikre måder at beregne danske helligdage (og derfor kan Oracle heller ikke). F.eks. er 1/5, 5/6 helligdage i din forstand?
Påske, Pinse osv flytter sig fra år til år og er derfor heller ikke nemme at beregne. De fleste applikationer løser det ved at implementere en kalender i form af en database tabel som skal holdes manuelt opdateret.
Avatar billede dp2001 Juniormester
04. september 2003 - 15:21 #2
Hvordan skriver man en sådan funktion (der undersøger om det er lørdag eller søndag)?
Avatar billede dancni Nybegynder
04. september 2003 - 23:34 #3
Der er mange måder at lave noget sådant men nedenstående eksempel på en brugerdefineret funktion bør demonstrere princippet.




create or replace function weekend (p_date in date) return varchar2
is

begin
  --
  -- Saturday = 7
  -- Sunday  = 1
  --
  if (to_char(p_date,'D') in (1,7)) then
      return 'true';
  else
      return 'false';
  end if;
end;
/


Anvendelse:
select 1 from dual where weekend(sysdate) = 'true';
Avatar billede holdam Nybegynder
05. september 2003 - 14:52 #4
Du kan finde en helligdagsberegningsalgoritme her: http://www.dat.ruc.dk/~hbh/Kalender/KalenderApplet.html

Den er skrevet i Java og kan derfor lægges ned i en Oracle database.
Avatar billede dancni Nybegynder
08. september 2003 - 12:52 #5
Meget fed applet og fint skoleridt i problemerne med datoberegning
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester