选择星期一和星期五之间的日期

时间:2013-07-12 20:25:12

标签: php mysql date

我有一张带日期字段的表格(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,无论一周中哪一天。

1 个答案:

答案 0 :(得分:5)

刚刚了解了WEEK() function in mysql

SELECT `date` FROM horoscopes WHERE WEEK(`date`) = WEEK(NOW(), -1);