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 に答える