verfaßt von Bard, 02.01.2011, 20:39:20
> Ich hab ein etwas seltsames Problem:
>
>
(70, \'asddas\', \'2011-01-05 18:25:00\', \'\', \'\', \'\', 1, \'\', \'\',
> \'asdads\', 9, 0)
> Entscheidend ist das Datum. in der ersten Kalenderwoche.
>
> Dann folgende Abfrage (der Stern ist nur zum Testen):
>
SELECT *
> FROM appointment,
> system__appointment_entries
> WHERE DATE_FORMAT(system__appointment_entries.creation_date,\'%v\') = \'1\'
> ORDER BY system__appointment_entries.creation_date DESC
> Ergebnis: kein Tupel wird gefunden.
> Wo liegt das Problem?
> Bei manchen Daten scheint zu funktionieren, bei anderen nicht. Das ist
> eine ziemlich einfache Sache - wenn es funktionieren würde.
> Ich sehs nicht. Habt ihr ne Idee?
>
Das hat was mit der Wochenberechnung zu tun.
Wiki hat da recht umfangreiche Infos: http://de.wikipedia.org/wiki/Woche#Kalenderwoche
In der MySQL-Dokumentation: http://dev.mysql.com/doc/refman/5.1/de/date-and-time-functions.html heißt es:
%V Woche (01 ... 53), wobei Sonntag der erste Tag der Woche ist; wird mit %X verwendet
%v Woche (01 ... 53), wobei Montag der erste Tag der Woche ist; wird mit %x verwendet
Unter Umständen liefert MySQL den 1.1. als erste Woche zurück, alles ab dem zweiten (evtl. dritten) Januar zählt schon als zweite Woche.
Schau dir statt date_format die WEEK-Funktion an.
Grüße
Bard
gesamter Thread: