データベース構造:
activities: id, description, date, time, endDate, endTime, userId
アクティビティを取得したので、日付、時刻が必要です。endDate と endTime は必要ありません。
問題は、今日のすべてのアクティビティを取得したい場合、次のようになります。
SELECT A.*, U.*
FROM activities
JOIN users U
ON U.id = A.userId
WHERE DATE(A.date) = DATE(CURDATE())
つまり、今日のすべてのアクティビティを取得できますが、昨日開始されたアクティビティがあり、終了日が明日になる場合は、まだアクティビティを取得する必要がありますか?
次のクエリを取得するよりも、次の週末に発生するすべてのアクティビティが必要です。
SELECT A.*, U.*
FROM activities
JOIN users U
ON U.id = A.userId
WHERE UNIX_TIMESTAMP(A.DATE) BETWEEN strtotime('previous saturday')
AND (strtotime('previous monday') - 1)
しかし、繰り返しますが、「日付」が金曜日で、火曜日に終了する場合、週末に行われているすべてのアクティビティを取得する場合、まだそのアクティビティを取得する必要があります。これを解決するにはどうすればよいですか?
すでに助けてくれてありがとう!:)