-1

桌子:

  • 活动:id、姓名、日期、时间、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)

'between' 语法不仅限于 just field between val1 and val2,还可以是val between field1 and field2其他任意表达式。

于 2011-11-28T16:37:37.140 回答