MySQLで、勤務シフトの開始時刻と終了時刻を日時タイプで格納するテーブルを作成しました。それらから2つのことを計算する必要があります(MySQLで)。まず、午後10時から午前6時までのシフトで誰かが何分働いたか、そして日曜日に何分働いたか。日曜日はそれらの夜の時間よりも優先されるべきであり、それらの日曜日の朝を2回カウントするべきではありません。
前もって感謝します。
D。
私はこれを試しましたが、うまくいきませんでした:
SELECT *,
IF(DAYNAME(start)=DAYNAME(end),
IF(TIME(start)<='6:00:00' AND TIME(end)<='6:00:00',TIME(end)-TIME(start),
IF(TIME(start)>='22:00:00' AND TIME(end)>='22:00:00',TIME(end)-TIME(start),
IF(TIME(start)>='6:00:00' AND TIME(end)<='22:00:00',0,
IF(TIME(start)<='6:00:00' AND TIME(end)<='22:00:00','6:00:00'-TIME(start),
IF(TIME(start)>='6:00:00' AND TIME(end)>='22:00:00',TIME(end)-'22:00:00',NULL)
)
)
)
),
IF(TIME(start)<='22:00:00' AND TIME(end)<='6:00:00','2:00:00'+TIME(end),
IF(TIME(start)<='22:00' AND TIME(end)>='6:00:00','8:00:00',
IF(TIME(start)>='22:00:00' AND TIME(end)<='6:00:00','24:00:00'-TIME(start)+TIME(end),
IF(TIME(start)>='22:00:00' AND TIME(end)>='6:00:00','24:00:00'-TIME(start)+'6:00:00',NULL)
)
)
)
) AS ExtraTime FROM `work`