从mysql中提取日期将在未来的所有日期返回

时间:2011-07-27 02:19:32

标签: mysql

我似乎无法弄清楚如何只提取本周的提醒,任何建议都会受到赞赏。

$query = ("SELECT * FROM contacts WHERE reminder >= DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) ORDER BY firstname") or die ('Error: ' .mysql_error()); 

1 个答案:

答案 0 :(得分:0)

非常天真的做法:
WHERE YEARWEEK(reminder) = YEARWEEK(NOW())。它有效,但它不会在reminder上使用索引(我相信有一个索引)。此外,将为每条记录执行YEARWEEK。正确的方法是使用WHERE reminder >=[start_date] and reminder <= [end_date](或reminder BETWEEN [start_date] AND [end_date])之类的查询,其中[start_date]和[end_date]分别代表当前周的第一天和最后一天。我认为在客户端计算这些日期更容易,但也可以在mysql上编写一个返回所需日期的函数。