1 Tag
stamp BETWEEN STR_TO_DATE('16.11.2011 6:00', '%d.%m.%Y %H:%i:%s') AND
STR_TO_DATE('17.11.2011 5:59:59', '%d.%m.%Y %H:%i:%s')
1 Nachtschicht
stamp BETWEEN STR_TO_DATE('16.11.2011 22:00', '%d.%m.%Y %H:%i:%s') AND
STR_TO_DATE('17.11.2011 5:59:59', '%d.%m.%Y %H:%i:%s')
Jetzt das Problem:
Die Nachtschichten von 5 Tagen
stamp BETWEEN STR_TO_DATE('16.11.2011 22:00', '%d.%m.%Y %H:%i:%s') AND
STR_TO_DATE('21.11.2011 5:59:59', '%d.%m.%Y %H:%i:%s') AND
TIME(stamp) BETWEEN STR_TO_DATE('22:00', '%H:%i:%s') AND
STR_TO_DATE('5:59:59', '%H:%i:%s')
Das habe ich nicht getestet und es würde nur klappen, wenn MySQL von der Untergrenze des BETWEEN aus strikt nach oben zählt, was ich aber eher nicht glaube. Probier mal.
Wäre es auch eine Möglichkeit, grundsätzlich von allen Zeitwerten 6 Stunden abzuziehen? Dann wäre der Arbeitstag mit dem Kalendertag "synchronisiert" und es scheinen Dich ja nur Schichten, nicht aber die tatsächlichen Tageszeiten zu interessieren.
Edited 2 time(s). Last edit at 11/15/2011 01:30AM by J?rg B?chner.