1

我有一个带有日期字段的表格(2013-07-11 = 2013 年 7 月 11 日)。

我需要从任何给定周的星期一(我一周的开始)到该周结束选择条目。

我已经看到可以抓取日期为 1 周前的行的查询,但我特别需要抓取具有date本周出现的字段的行,而不管一周中的当前日期是什么。

我目前正在使用这个在php中抓取它,但我觉得必须有一个mysql方法来计算本周的开始和结束:

$this_monday = date('Y-m-d', strtotime('previous monday'));
$this_friday = date('Y-m-d',strtotime('this friday'));

$sql = "SELECT `date`, $sign FROM `horoscopes` 
    WHERE `date` >= '$this_monday' AND `date` <= '$this_friday'
    AND type = 'Daily'
    ORDER BY `date` ASC
";

而且我很确定在星期一它最终会抓住上周的星期一,而不是星期一。

从这个数据集中,我想选择以下内容:

+------------+
| date       |
+------------+
| 2013-07-12 |
| 2013-07-11 |
| 2013-07-10 |
| 2013-07-09 |
| 2013-07-17 |
| 2013-07-08 |
| 2013-07-05 |
+------------+

7-8、7-9、7-10、7-11、7-12,无论星期几。

4

1 回答 1

5

刚刚了解了mysql中的WEEK()函数

SELECT `date` FROM horoscopes WHERE WEEK(`date`) = WEEK(NOW(), -1);
于 2013-07-12T20:29:37.950 回答