Dynamische SQL Abfrage nach Wochentag
Dynamische SQL Abfrage je nach Wochentag
Moin zusammen,
ich habe eine SQL Abfrage, welche mir je nach Wochentag einen anderen Intervall nehmen soll.
SELECT
*
FROM
change ch
WHERE
ch.closedate >= SYSDATE -24/24
Hier ist die Frage wie ich den Stundenintervall dynamisch einstellen kann.
Ziel ist das der Bereich SYSDATE folgend bezogen wird.
Dienstag - Sonntag = SYSDATE -24/24
Montag = SYSDATE -96/24
Mittels folgendem Code bekomme ich ja den jetzigen Wochentag raus:
SELECT to_char(SYSDATE,'Day') from dual
Nur jetzt möchte ich wie gesagt abfragen, je nachdem was für ein Wochentag ist, soll ein anderer Zeitraum genommen werden.
Wie kann ich das als Variable deklarieren, bzw. habt Ihr eine Idee ?
Merci
Moin zusammen,
ich habe eine SQL Abfrage, welche mir je nach Wochentag einen anderen Intervall nehmen soll.
SELECT
*
FROM
change ch
WHERE
ch.closedate >= SYSDATE -24/24
Hier ist die Frage wie ich den Stundenintervall dynamisch einstellen kann.
Ziel ist das der Bereich SYSDATE folgend bezogen wird.
Dienstag - Sonntag = SYSDATE -24/24
Montag = SYSDATE -96/24
Mittels folgendem Code bekomme ich ja den jetzigen Wochentag raus:
SELECT to_char(SYSDATE,'Day') from dual
Nur jetzt möchte ich wie gesagt abfragen, je nachdem was für ein Wochentag ist, soll ein anderer Zeitraum genommen werden.
Wie kann ich das als Variable deklarieren, bzw. habt Ihr eine Idee ?
Merci
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 197891
Url: https://administrator.de/contentid/197891
Ausgedruckt am: 22.11.2024 um 12:11 Uhr
8 Kommentare
Neuester Kommentar
Hi,
werte die Rückgabe der TO_CHAR() Funktion in einem IF oder CASE aus.
http://www.techonthenet.com/oracle/loops/if_then.php
werte die Rückgabe der TO_CHAR() Funktion in einem IF oder CASE aus.
http://www.techonthenet.com/oracle/loops/if_then.php
Hallo,
einfach in der WHERE-Klausel ein CASE Konstrukt bauen.
z.B.
Es ist übrigens immer ganz hilfreich, wenn man die verwendetet Datenbank angibt (MySQL, Oracle, Access ...)
Gruß Jörg
einfach in der WHERE-Klausel ein CASE Konstrukt bauen.
z.B.
SELECT co.order_no, co.date_entered
FROM customer_order co
WHERE CASE WHEN TO_CHAR(SYSDATE,'D') <= 5
THEN SYSDATE -24/24
ELSE SYSDATE -96/24
END <= co.date_entered
Es ist übrigens immer ganz hilfreich, wenn man die verwendetet Datenbank angibt (MySQL, Oracle, Access ...)
Gruß Jörg