Datum aus datetime herausholen

mwhiegl

mwhiegl

Aktives Mitglied
Thread Starter
Dabei seit
20.05.2006
Beiträge
185
Reaktionspunkte
1
Ich habe ein Wordpress-Blog und möchte aus der datenbank herausholen, an wievielen Tagen ich etwas geschrieben habe.

Leider ist die datumsangabe im datetime-Format (also z.B. 2006-08-25 08:45:04).

So hol ich im Moment heraus, wie viele Posts ich insgesam veröffentlicht habe:
Code:
SELECT COUNT(DISTINCT post_date) FROM $wpdb->posts WHERE post_status = 'publish'

Kann ich in der Abfrage das post_date umwandeln, und wirklich nur das Datum herausholen? Oder muss ich das irgendwie über php lösen?
 
DISTINCT wird Dir in diesem Fall immer die Gesamtzahl liefern. Somit kannst Du es auch weglassen, da sich die Uhrzeit bei jedem Eintrag unterscheidet. Ich würde es mit einer temporären Tabelle versuchen.
Code:
CREATE TEMPORARY TABLE tmptab1 (SELECT DATE_FORMAT(post_date,'%d-%m-%Y') FROM $wpdb->posts WHERE post_status = 'publish');
SELECT COUNT(DISTINCT post_date) FROM tmptab1;
ungetestet!
 
Hallo Manjo,
vielen Dank für den Vorschlag. Ich hab ihn ausprobiert und leider nicht zum funktionieren gebracht, auch wenn ich mir sicher bin, dass es auch eine richtige Richtung darstellt.

Nach ewiger Recherche in allen möglichen Foren und schließlich nochmals im MySQL Manual hab ich jetzt die Lösung gefunden:
Code:
SELECT COUNT(DISTINCT DATE(post_date)) FROM $wpdb->posts WHERE post_status = 'publish';
Das kleine DATE() hat es ausgemacht...

http://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html
DATE(expr)

Extracts the date part of the date or datetime expression expr.

mysql> SELECT DATE('2003-12-31 01:02:03');
-> '2003-12-31'

DATE() is available as of MySQL 4.1.1.
 
Zuletzt bearbeitet:
Zurück
Oben Unten