Alex_winf01 Geschrieben 2. März 2012 Teilen Geschrieben 2. März 2012 Hallo liebe Forengemeinde, ich muss für einen Kalender ermitteln, ob es sich um einen Arbeitstag handelt. Wie kann ich in PL/SQL ermitteln, ob ein bestimmter Tag ein Arbeitstag ist? Wie kann ich ermitteln, ob ein bestimmtes Datum ein Feiertag ist? Gibt es da in PL/SQL vordefinierte Funktionen? Samstag, Sonntag sind bei uns in Deutschland z. B. Wochenende. In anderen Ländern ist das anders. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
carstenj Geschrieben 2. März 2012 Teilen Geschrieben 2. März 2012 Hi, schau mal hier: Gregors Oracle Spickzettel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dbwizard Geschrieben 2. März 2012 Teilen Geschrieben 2. März 2012 Hallo, Du kanst ermitteln, welcher Wochentag es ist (Montag, ....). Ob dies ein Arbeitstag ist, weiss die DB nicht, dies ist eine Definitionssache SELECT TO_CHAR (SYSDATE, 'DAY') FROM DUAL Gruss Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Alex_winf01 Geschrieben 2. März 2012 Autor Teilen Geschrieben 2. März 2012 @ all danke schon mal für die Antworten. @ dbwizard für die Arbeitstage habe ich eine Tabelle, wo die arbeitsfreien Tage drinnstehen. Damit nun mein Anwender nicht z. B. die Feiertage oder Wochenende "manuell" als arbeitsfrei markieren muss, hatte ich gedacht, die Feiertage und Wochenenden dort bereits einzutragen. Wie würdest Du das machen? Ich brauche einen Kalender, wo für jedes Jahr abgebildet ist, welcher Tag arbeitsfrei ist und welcher nicht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
carstenj Geschrieben 2. März 2012 Teilen Geschrieben 2. März 2012 Hi, du machst einfach eine IF-Abfrage, ob es sich bei dem Tag um einen Samstag oder Sonntag handelt. Oder fehlt es dir an den grundlegenden PL/SQL Kenntnissen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Alex_winf01 Geschrieben 2. März 2012 Autor Teilen Geschrieben 2. März 2012 @ carstenj recht hast Du. Aber wie würdest Du das mit den Feiertagen machen? Feiertage Deutschland, USA, Japan sind "ein wenig" unterschiedlich. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
carstenj Geschrieben 2. März 2012 Teilen Geschrieben 2. März 2012 (bearbeitet) Hi, wie in meinem Link gepostet. Ich denke es ist recht elegent, sämtliche Feiertage zu jedem entsprechenden Land in eine Tabelle zu packen. Diese kannst abfragen und wieder mit einer If-Abfrage prüfen, ob dieser Tag in der Tabelle steht oder nicht. Manche (wenn nicht alle?!) Feiertage werden entweder nach einem bestimmten Algorithmus berechnet, oder sind eben fest (3. Oktober, 1. Januar, 25. u 26. Dezember). Wenn du das global machen möchtest, wirst du viel zu tun haben. Ich finde das Thema recht spannend. Wenn du Hilfe brauchst, mach ich gerne mit. Schau mal hier: http://de.wikipedia.org/wiki/Feiertage_in_Japan http://de.wikipedia.org/wiki/Staatliche_Feiertage_in_den_Vereinigten_Staaten http://de.wikipedia.org/wiki/Feiertage_in_Deutschland Bearbeitet 2. März 2012 von carstenj Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dbwizard Geschrieben 2. März 2012 Teilen Geschrieben 2. März 2012 Hallo Alex, Wir haben hier für einen Kunden eine Pesonaleinsatzplanung im Betrieb. In der Schweiz sind die Feiertage in den einzelnen Kantonen und z.t. sogar Städten unterschiedlich. Dies haben wir gelöst, indem wir eine Tabelle Feiertage, alle Kantone (D=Bundesländer) sowie eine Relationstabelle Feiertage-Kantone erstellt haben (Wir gehen in unserer Applikation nicht "tiefer" als auf Kantonsebene. (auszug) DESC code_publicholiday / Name Data Type ------------------------------ ------------------------------ PUBLICHOLIDAY_ID NUMBER NOT NULL ISACTIVE NUMBER(1,0) NOT NULL VALIDFROM DATE NOT NULL CREATIONDATE TIMESTAMP(6) NOT NULL CREATEDBY_ID NUMBER NOT NULL CHANGEDATE TIMESTAMP(6) NOT NULL CHANGEDBY_ID NUMBER NOT NULL SORTKEY NUMBER HOLIDAYDATE DATE NOT NULL REPEATEVERYYEAR NUMBER(1,0) NOT NULL DESCRIPTIONGE VARCHAR2(100 BYTE) NOT NULL DESCRIPTIONFR VARCHAR2(100 BYTE) NOT NULL DESCRIPTIONIT VARCHAR2(100 BYTE) NOT NULL VALIDALLCANTONS NUMBER(1,0) NOT NULL DESC CODE_CANTON / Name Data Type ------------------------------ ------------------------------ CANTON_ID NUMBER NOT NULL CANTON_KURZ VARCHAR2(2 BYTE) NOT NULL CANTON_LANG_D VARCHAR2(40 BYTE) CANTON_LANG_F VARCHAR2(40 BYTE) CANTON_LANG_I VARCHAR2(40 BYTE) ISVALID NUMBER(1,0) NOT NULL ISDEFAULT NUMBER(1,0) NOT NULL ISACTIVE NUMBER(1,0) NOT NULL CREATOR VARCHAR2(10 BYTE) CREATIONDATE DATE LASTCHANGE VARCHAR2(10 BYTE) LASTCHANGEDATE DATE VALIDFROM DATE NOT NULL DESC REL_HOLIDAY_CANTON / Name Data Type ------------------------------ ------------------------------ PUBLICHOLIDAY_ID NUMBER NOT NULL PUBLICHOLIDAYVALIDFROM DATE NOT NULL CANTON_ID NUMBER NOT NULL CANTONVALIDFROM DATE NOT NULL Grüsse Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Alex_winf01 Geschrieben 2. März 2012 Autor Teilen Geschrieben 2. März 2012 @ all danke für Eure Hilfe. Letzte Frage: Ich habe mehrere Standorte. Jeder Standort hat genau einen Kalender. Der Kalender ist höchstens einem Standort zugewiesen. D. h. es wird einen Default-Kalender geben. Wie ich den Standort-spezifischen pflegen muss/möchte weiss ich schon. Da habe ich links eine lListe mit Standort/Kalender, wo ich die standortspezifischen pflegen kann. Wie würdet ihr das aber mit dem Default-Kalender machen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.