【发布时间】:2012-01-09 15:24:12
【问题描述】:
数据库结构:
activities: id, description, date, time, endDate, endTime, userId
所以我们得到了一个activity,它需要有一个日期,时间,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)
但是再一次,如果“约会”是在星期五并将在星期二结束,而我得到了周末发生的所有活动,我仍然必须得到那个活动,我该如何解决这个问题?
非常感谢您的帮助! :)
【问题讨论】:
-
endDate 可以为空吗?在那种情况下,您是否认为该事件将永远持续下去?
-
不会,只会持续一天