Per SQL (Oracle) Alle datensätze des letzten Monats filtern
Hallo ich habe eine Tabelle welche ich abfragen möchte, diese soll mir aber nur die Werte des letzten Monats ausgeben.
Select * from testdate where Datum....
Leider muss ich hier passen.....
Select * from testdate where Datum....
Leider muss ich hier passen.....
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 263337
Url: https://administrator.de/forum/per-sql-oracle-alle-datensaetze-des-letzten-monats-filtern-263337.html
Ausgedruckt am: 31.03.2025 um 01:03 Uhr
6 Kommentare
Neuester Kommentar

http://stackoverflow.com/questions/2369222/oracle-date-between-query
http://stackoverflow.com/questions/2188929/sql-server-select-all-items- ...
unget. etwa so:
Gruß jodel32
http://stackoverflow.com/questions/2188929/sql-server-select-all-items- ...
unget. etwa so:
SELECT *
FROM testdate
WHERE datepart(m,Datum) = datepart(m,dateadd(m,-1,getdate()))
AND and datepart(yy,Datum) = datepart(yy,dateadd(m,-1,getdate()))
Gruß jodel32
Moin thomas1972,
eine der 37449 Möglichkeiten unter Oracle:
Zur Erläuterung:
Das würde also auch heute, am 13.2.2015, bei
Davon wird -1 = 1 Tag abgezogen -> ich lande beim Letzten des Vormonats, hier also auf dem 31.1.2015.
Auf den Letzten des Vormonats wiederum ein
Und damit kann ich das
Grüße
Biber
P.S. Das DatePart-Äquivalent unter Oracle wäre ein
P.P.S. Okay, nach Gersens Kommentar: Ich habe "nur die Werte des letzten Monats" als "die Werte des Vormonats" verstanden, nicht als "die Werte der letzten 4 Wochen".
eine der 37449 Möglichkeiten unter Oracle:
Select * from testdate
where trunc( datum, 'MM') = trunc(trunc(sysdate, 'MM') - 1, 'MM')
;
Zur Erläuterung:
Trunc(datum, 'MM')
verkürzt/verallgemeinert ein Datumsfeld auf den Ersten des Monats (aus 13.02.2015 12:55 wird 01.02.2015 00:00)Das würde also auch heute, am 13.2.2015, bei
trunc(sysdate, 'MM')
herauskommen.Davon wird -1 = 1 Tag abgezogen -> ich lande beim Letzten des Vormonats, hier also auf dem 31.1.2015.
Auf den Letzten des Vormonats wiederum ein
Trunc( UltimoVormonat), 'MM')
--> ergibt den 1. des Vormonats (=1.1.2015)Und damit kann ich das
Trunc(datum)
der Datensätze vergleichen.Grüße
Biber
P.S. Das DatePart-Äquivalent unter Oracle wäre ein
... Extract (Month from Datum) , extract(year from Datum) ..
P.P.S. Okay, nach Gersens Kommentar: Ich habe "nur die Werte des letzten Monats" als "die Werte des Vormonats" verstanden, nicht als "die Werte der letzten 4 Wochen".
Hallo,
liest man den Teil
als Dauer (4 Wochen vor dem aktuellen Datum), wäre
vermutlich das Einfachste.
Gruß,
Gersen
liest man den Teil
als Dauer (4 Wochen vor dem aktuellen Datum), wäre
SELECT * FROM testdate WHERE Datum >= (SYSDATE - 28);
Gruß,
Gersen
Moin ukulele-7,
Dann ist es eher von nachrangiger Bedeutung, ob thomas1972 ein überflüssiges <*> weglässt oder zwei davon dazumogelt.
Bei einem SQLServer mag das anders aussehen.
Grüße
Biber
Da steht auch ein <*> wo es nicht hingehört.
Mag ja sein, aber Oracle kennt doch trotzdem weder getdate() noch datepart().Dann ist es eher von nachrangiger Bedeutung, ob thomas1972 ein überflüssiges <*> weglässt oder zwei davon dazumogelt.
Bei einem SQLServer mag das anders aussehen.
Grüße
Biber