2013-01-17 72 views

回答

7
SELECT 
    1 + DATEDIFF(columnDate, @start_date) DIV 7 AS weekNumber 
    , @start_date + INTERVAL (DATEDIFF(columnDate, @start_date) DIV 7) WEEK 
     AS week_start_date 
    , MIN(columnDate) AS actual_first_date 
    , MAX(columnDate) AS actual_last_date 
    , SUM(otherColumn) 
    , AVG(otherColumn) 
    --- 
FROM 
    tableX 
WHERE 
    columnDate >= @start_date 
GROUP BY 
    DATEDIFF(columnDate, @start_date) DIV 7 ; 
+0

它完美的工作! Mysql中的日期處理並不是很舒適,但似乎並不那麼難。謝謝! – flaviu

+0

這是否每天都需要一排? –

+0

@AndrewTibbetts你是什麼意思? –

0
SELECT users.* from users 
WHERE created_at >= '2011-12-01' 
AND created_at <= date_add('2011-12-01', INTERVAL 7 DAY) 

這會選擇在201-12-01之間和之後7天創建的用戶。 進行更改,根據您的需要進行查詢。

+0

謝謝你的快速解答!但是這隻給了我第7天的時間間隔。我需要從該日期開始每隔7天。 – flaviu

2
SELECT * 
FROM `table` 
GROUP BY WEEK(ADDDATE(`date_column` , WEEKDAY(NOW()))) 
+0

它非常接近,但這給了我週日或週一開始的幾周。我需要開始日作爲給定日期的工作日。 – flaviu

+0

嘗試編輯後 – vlcekmi3

相關問題