[SQL] Rechnen mit date?
-
Löschen aller Angestellten, die schon länger als 35 Jahre in der Firma sind.
// Ungenau - Tage und Monate werden nicht berücksichtigt: DELETE emp WHERE to_char(hiredate,'YYYY')-to_char(sysdate,'YYYY')<-35; // Genauer, aber (noch ;)) nicht funktionstüchtig: DELETE emp WHERE sysdate-hiredate > sysdate-35;
Wie kann ich die 35 in Jahre umrechnen, bzw. wie kann ich von sysdate 35 Jahre abziehen - oder gibts ne andere Möglichkeit die Aufgabe zu lösen? Ich komm auf keine - to_number() funktioniert nicht, to_date() ebenfalls nicht.
SQL oder eine Oracle-Spezial-Funktion.
MfG SideWinder
-
Gibt es bei Oracle nicht ein YEARS_BETWEEN(DATE, DATE)? Ich meine mich an sowas zu erinnern.
-
es gibt zumindest eine add_months(date,months) funktion:
http://www.techonthenet.com/oracle/functions/index.htm
-
years_between gibts nicht, ich habs jetzt mit months_between gemacht, dann ist es zumindest auf Monate genau.
Kennt nicht jemand einen years_between-Ersatz?
MfG SideWinder
-
DATE_SUB(Datum, INTERVALL Ausdruck Typ)
SELECT DATE_SUB(NOW(),INTERVAL 12 DAY);
Typangabe
Bedeutung und FormatSECOND
SekundenMINUTE
MinutenHOUR
StundenDAY
TageMONTH
MonateYEAR
JahreMINUTE_SECOND
"Minuten:Sekunden"HOUR_MINUTE
"Stunden:Minuten"DAY_HOUR
"Tage Stunden"YEAR_MONTH
"Jahre-Monate"HOUR_SECOND
"Stunden:Minuten:Sekunden"DAY_MINUTE
"Tage Stunden:Minuten"DAY_SECOND
"Tage Stunden:Minuten:Sekunden"Wobei du dann die Query anpasst und den Intervall für Jahre nimmst.
-
Hmm, würde gut aussehen, aber:
- date_sub ist in der Oracle9-Doku nicht zu finden
- Dein Beispiel funktioniert nichtSELECT date_sub(now(),interval 35 year) from dual; * Rechte klammer fehlt
Auch mit 'intervall' (doppel l) wie du in der ersten Zeile geschrieben hast funktioniert es nicht.
Hast du einen Dokulink dazu?
MfG SideWinder
-
Die frage war ja auch nicht Oracle spezifisch. Bei Oracle kann ich nicht helfen.
-
Lazarus1 schrieb:
Die frage war ja auch nicht Oracle spezifisch. Bei Oracle kann ich nicht helfen.
Welche DB wärs gewesen? Grundsätzlich wars ja ne SQL-Frage, und afaik unterstützt Oracle SQL komplett?!
MfG SideWinder
-
Diese Datumsfunktion hab ich aus dem e-book MySql in 21 Tagen. Einen Link dazu hab ich nicht hab ich mir offline verfügbar gemacht über die Favoriten und dann aus dem IE temp Ordner raus. So hab ich es jetzt als e-book. Hehe gut geklaut ist fast so gut wie gekauft.
-
Okay, schade, dass Oracle das nicht kann
Thx anyway
MfG SideWinder
-
Die SQL-Zusatzfunktion sind auch ein Grund warum MySQL so beliebt ist.
Auch wenn es nicht SQL-Standard ist.
-
Oracle kann sowas auch, ich weiss das ich schonmal gemacht habe....
Ich errinere mich nur nichmehr so genau wie...
Wenn ich dran denk schau ich in meinem Oracle in 21 Tagen Buch zu hause nochmal nach.
-