derlomi
Goto Top

Oracle Sysdate

Moin alle zusammen
Bin gerade eine Abfrage in Oracle am schreiben, welche Daten aus einem mehr oder weniger bestimmten Zeitraum aus der Datenbank ziehen soll.

Habe hier den Ansatz aber komme an dem Punkt nicht weiter, bei dem ich in der Abfrage deklarieren soll, das er immer vom Anfang des Jahres gehen soll.

Ein Auszug des Scripts:

select count (ANR) as morgen from relcb
where saint = '60'
and segm1_term > to_date ('01012010','DDMMYYYY') --hier soll er immer von dem aktuellen Jahr ausgehen sprich 01.01.
and segm1_term < trunc(sysdate) +1 -- das funktioniert
(is ja auch nicht schwer einen tag draufzurechnen)

Gibt es auch eine Möglichkeit die Anfrage so anzupassen, das er auch nur in der aktuellen KW nachschaut, welche Daten vorhanden sind? Sprich das wenn ich mir die Daten zum Beispiel heute aus der Datenbank ziehen möchte, das er trotzdem nur bis zum 07.11.2010 geht? Mit trunk(sysdate) + 7 geht ja immer sieben Tage weiter -.-

Vielen Dank schonmal im Vorraus

Content-ID: 154244

Url: https://administrator.de/contentid/154244

Ausgedruckt am: 05.11.2024 um 19:11 Uhr

piet2000
piet2000 03.11.2010 um 11:03:01 Uhr
Goto Top
Daten zum laufenden Jahr:
where to_char(segm1_term,'YYYY') = to_char(sysdate,'YYYY')

Daten zu der aktuelle Kalender Woche:
where to_char(segm1_term,'WW') = to_char(sysdate,'WW')

Hoffe es hilft dir
Gruß
Piet
Biber
Biber 03.11.2010 um 19:56:19 Uhr
Goto Top
Moin DerLomi,

alternativ zu dem to_date()/to_char()-Gemähre würde ich eher auf die Datumsarithmetik mit TRUNC() vertrauen.

Für den simplen Fall, den du oben skizziert hast, wäre das
select count (ANR) as morgen from relcb
where saint = '60'  
and segm1_term BETWEEN  trunc(sysdate, 'YYYY')  and sysdate   
== vom 1.1.dieses Jahres bis heute (jeweils einschließlich)

Für das Zusatzschmankerl "nur in der aktuellen KW" ...
Na ja, sag mir, was für dich/euer Unternehmen/eure Daten die "aktuelle Kalenderwoche" ist, dann schaun mer ma...

Die "aktuelle KW" kann mit einem Montag anfangen und mit einem Sonntag enden oder aber so beginnen, das Mittwoch in der Mitte der Woche liegt.
Heute am 3.11.2010 kann je nach Perspektive und Norm die KW 44 oder 45 sein...

Je nachdem welche -ich sach' ma' - "Konvention" ihr verwenden wollt ...
--> Spiel dich mit den TRUNC(sysdate, 'IW') und TRUNC(sysdate, 'WW')-Variationen zum Ziel.

Grüße
Biber
DerLomi
DerLomi 05.11.2010 um 21:11:00 Uhr
Goto Top
ja wunderbar :D
hat alles geklappt =) mit trunc ist es wesentlich komfortabler

aber trotzdem besten dank für alle antworten.

LG Tobi