0

mysql の現在の日付に関して過去 4 日間の日曜日の日付を取得するにはどうすればよいですか? ありがとう、

今日の日付がクエリ12/14/2012からの出力がsql次のようになるはずだとしましょう

第 1 日曜日 | 第 2 日曜日 | 第3日曜日 | 第4日曜日
2012/11/11 2012/11/18 2012/11/25 2012/12/09

アップデート:

PHPで私はこれをしました:

    $date_lastsunday = strtotime("last Sunday");
$w1_sunday = $date_lastsunday - 7 * 24 * 3600;
$w2_sunday = $date_lastsunday - 14 * 24 * 3600;
$w3_sunday = $date_lastsunday - 21 * 24 * 3600;
$w4_sunday = $date_lastsunday - 28 * 24 * 3600;

mysqlでどのようにできるのか疑問に思っています...

4

1 に答える 1

5

各行にそれらが必要な場合

SELECT Curdate() - INTERVAL (Weekday(Curdate())+1) day AS `Sunday` 
UNION 
SELECT Curdate() - INTERVAL (Weekday(Curdate())+1+7*1) day 
UNION 
SELECT Curdate() - INTERVAL (Weekday(Curdate())+1+7*2) day 
UNION 
SELECT Curdate() - INTERVAL (Weekday(Curdate())+1+7*3) day 

それらを列に配置する場合は、に置き換えUNION SELECTます,。このような

SELECT Curdate() - INTERVAL (Weekday(Curdate())+1) day `1st Sunday`, 
       Curdate() - INTERVAL (Weekday(Curdate())+1+7*1) day `2nd Sunday`, 
       Curdate() - INTERVAL (Weekday(Curdate())+1+7*2) day `3rd Sunday`, 
       Curdate() - INTERVAL (Weekday(Curdate())+1+7*3) day `4th Sunday` 

CPU集約度の低い方法、

SET @OFS=Weekday(Curdate())+1;
SET @CD=curdate();
sELECT @CD - INTERVAL (@OFS) day `1st Sunday`, 
       @CD - INTERVAL (@OFS+7*1) day `2nd Sunday`, 
       @CD - INTERVAL (@OFS+7*2) day `3rd Sunday`, 
       @CD - INTERVAL (@OFS+7*3) day `4th Sunday` 
于 2012-12-13T19:08:14.673 に答える