anzahl der Tage eines Monats ermitteln
hilker
- datenbank
0 hilker0 Axel Richter
hat jemand eine Idee wie man am geschicktesten in MySQL
z.b. aus CURDATE() oder '2005-02-16' die Anzahl der Tage die der Monat hat ermitteln kann? in diesem Fall also 28...?
Ich hab - abgesehen von komplizierten Funktionen und Schleifen in meinem Perl script bisher keine Möglichkeit gefunden. (Arrays mit anzahl der Tage und Schaltjahrberechnung).
Aber dass muß doch einfacher gehen, oder?
Im MySQL Kochbuch von O'Reily wird sowas in Kapitel 5 Beschrieben, leider hab ich die Ausgabe aber nicht mehr :-(
über einen Tip würd' ich mich freuen, danke!
OK, ist ja doch nicht so schwer 'ne... :-)
SELECT DAYOFMONTH(DATE_ADD("YYYY-MM-01", INTERVAL -1 DAY))
bringt das richtige Ergebnis...
hat jemand eine Idee wie man am geschicktesten in MySQL
z.b. aus CURDATE() oder '2005-02-16' die Anzahl der Tage die der Monat hat ermitteln kann? in diesem Fall also 28...?
Erstelle aus dem Datum den ersten Tag des Monats
concat(date_format(CURDATE(), '%Y-%m'), '-01').
http://dev.mysql.com/doc/mysql/en/string-functions.html
http://dev.mysql.com/doc/mysql/en/date-and-time-functions.html
Addiere das Interval von einem Monat hinzu.
date_add(concat(date_format(CURDATE(), '%Y-%m'), '-01'), interval 1 month)
http://dev.mysql.com/doc/mysql/en/date-and-time-functions.html
Ziehe hiervon einen Tag ab.
date_sub(date_add(concat(date_format(CURDATE(), '%Y-%m'), '-01'), interval 1 month), interval 1 day)
Der Tag des Datums, der sich dadurch ergibt, ist der letzte Tag des Monats, also auch die Anzahl der Tage im Monat.
dayofmonth(date_sub(date_add(concat(date_format(CURDATE(), '%Y-%m'), '-01'), interval 1 month), interval 1 day))
viele Grüße
Axel