Berthold
27-05-2002, 16:49
Eine SQL-Einführung, mit der ich immer mal wieder arbeite, gibt für Informix u.a. Systeme bei den Datumsfunktionen date() an, zeigt an Tag, Monat und Jahr.
Ich finde bei MySQL keine entsprechende Funktion.
Aufgabe, Ermittlung, ob's ein Schaltjahr ist
select date('01.03.1992') -1 from persdat where persnr = 1;
Das lässt sich in MySQL realisieren mit
select date_sub('1992-03-01', interval 1 day) from persdat where persnr = 1;
(Ergebnis 1992-29-02, ist ein Schaltjahr.)
Aber folgende Aufgabe
Wie viele Tage liegen zwischen dem 3.3.92 und dem 29.2.92,
nach Buch mit date() folgendermaßen
select date('03.03.1992') - date('29.02.1992') from persdat where persnr = 1;
also einfach das eine Datum vom anderen subtrahieren, Ergebnis die Zahl der Tage, nämlich 3, krieg ich mit MySQL auch nach einigem Handbuchstudium nicht hin.
Die MySQL-Funktionen curdate() oder now() geben einfach nur das aktuelle Datum aus und akzeptieren keine Zusatzargumente. Und ein Intervall bspw. year_month_date zu date_add und date_sub gibt es leider nicht.
Ebenso wenig schaff ich folgendes Beispiel
select date('15.05.1985') - eintritt from persdat where persnr = 1;
wobei eintritt eine Tabelle ist, die auch Datumswerte enthalt.
Also, wie kann ich in MySQL bei zwei Datumswerten mit Subtraktion, oder halt auch Addition arbeiten?
Gruß und Dank
Berthold
Ich finde bei MySQL keine entsprechende Funktion.
Aufgabe, Ermittlung, ob's ein Schaltjahr ist
select date('01.03.1992') -1 from persdat where persnr = 1;
Das lässt sich in MySQL realisieren mit
select date_sub('1992-03-01', interval 1 day) from persdat where persnr = 1;
(Ergebnis 1992-29-02, ist ein Schaltjahr.)
Aber folgende Aufgabe
Wie viele Tage liegen zwischen dem 3.3.92 und dem 29.2.92,
nach Buch mit date() folgendermaßen
select date('03.03.1992') - date('29.02.1992') from persdat where persnr = 1;
also einfach das eine Datum vom anderen subtrahieren, Ergebnis die Zahl der Tage, nämlich 3, krieg ich mit MySQL auch nach einigem Handbuchstudium nicht hin.
Die MySQL-Funktionen curdate() oder now() geben einfach nur das aktuelle Datum aus und akzeptieren keine Zusatzargumente. Und ein Intervall bspw. year_month_date zu date_add und date_sub gibt es leider nicht.
Ebenso wenig schaff ich folgendes Beispiel
select date('15.05.1985') - eintritt from persdat where persnr = 1;
wobei eintritt eine Tabelle ist, die auch Datumswerte enthalt.
Also, wie kann ich in MySQL bei zwei Datumswerten mit Subtraktion, oder halt auch Addition arbeiten?
Gruß und Dank
Berthold