-1

テーブル:

  • アクティビティ:id、name、date、time、endDate、endTime

基本的に、私は次のようなクエリを受け取りました。

TODAY:
SELECT * FROM activities WHERE DATE(A.date) = DATE(CURDATE())

TOMORROW:
SELECT * FROM activities WHERE DATE(A.date) = (CURDATE() + INTERVAL 1 DAY)

NEXT WEEK:
SELECT * FROM activities WHERE UNIX_TIMESTAMP(A.DATE) BETWEEN '" . strtotime('previous saturday') . "' AND '" . (strtotime('previous monday') - 1) . "'

問題は、それを解決する方法がわからないことです。終了日が挿入されると、日付と終了日の間を検索する必要があります。したがって、アクティビティが昨日開始され、今日終了し、「今日」のクエリを選択した場合でも、アクティビティが必要です。

4

1 に答える 1

1
SELECT *
FROM activities
WHERE DATE(now()) BETWEEN DATE(A.startdate) AND DATE(B.enddate)

「before」構文は、だけに限定されず、他の任意の式field between val1 and val2も使用できます。val between field1 and field2

于 2011-11-28T16:37:37.140 に答える