查找当前/未来的日子

时间:2013-10-31 17:49:54

标签: mysql date

我有这张桌子:

ID      dayNum      dayName     eventTypeID     
-------------------------------------------
1       4           Wednesday   1
2       7           Saturday    1

对于eventTypeID,我想选择包含未来或当前日期的行。今天星期四,那么如何才能返回dayName星期六的行?

我只需要一个AND语句用于以下查询:

SELECT      *
FROM        `events`
WHERE       `eventTypeID` = 1
AND         ??

daynum在:

dayNum字段是每天的索引,其中星期一= 1,星期六= 7

如果您能够得到答案,只需将当天的密码编码为5(星期四)。我已经有了获得今天dayNum的逻辑,而且这个问题与这个问题并不相关。

1 个答案:

答案 0 :(得分:1)

我会按“差异”排序,然后按照这样限制1:

SELECT *
FROM events
ORDER BY MOD(dayNum - DAYOFWEEK(NOW()) + 7, 7)
LIMIT 1

你需要MOD 7所以如果当天是7,那么下一个最接近的那个应该是1,相当于(-6 MOD 7)。那里有一个额外的+ 7,因为MySQL似乎希望在模数之后保持负数为负数。

SQLFiddle