2012-12-09 110 views
0

我有一個下拉框,我選擇持續時間。如果我選擇1周,我必須從Mysql數據庫中檢索過去一週的數據。我在下面的查詢的幫助下做到這一點。如何從Mysql中獲取當前系統時間之前一週的日期?

SELECT * FROM rpt_machine_log WHERE (timestamp between date_sub(now(),INTERVAL $interval) and now()) 

當我選擇了兩個星期,我必須讓兩個結果集,一個包含本週的數據,可以用上面的查詢來完成,我也希望結果集,它包含一個數據本週前一週。

同樣,如果我選擇3周,我應該得到3個結果集,包含最近3周的數據,每週作爲單獨的結果集。

我想在不改變查詢的情況下實現這種情況,我只想將日期範圍傳遞給查詢以獲取結果。因此,我需要從當前系統時間獲取每週的結束日期。

EDITED * 說明了情況與實例: *

如果當前日期是星期二和日期是2012年4月12日,當我選擇3周,我想記錄這些天之間設置。 27-11-2012至2012年4月12日爲一週結果集,20-11-2012至27-11-2012爲第二週結果集,13-11-2012至20-11-2012爲第三週期結果集。這是可能從您的查詢?

回答

0

我已經執行了一個查詢,您可以在其中找到表中給定日期的week_start_date和week_end_date。 我已經創建了一個示例表相同

create table tbl(
    orderid int(10), 
    dt date); 

insert into tbl values(1,'2012-12-04'); 

insert into tbl values(2,'2012-11-27'); 

insert into tbl values(3,'2012-11-20'); 

SELECT orderid,dt, 
DATE_ADD(dt, INTERVAL(1-DAYOFWEEK(dt)) DAY) week_start, 
    DATE_ADD(dt, INTERVAL(7-DAYOFWEEK(dt)) DAY) week_end 
FROM tbl 
WHERE (dt between date_sub(now(),INTERVAL 3 WEEK) and now()) 
group by week_start,week_end 
order by week_start,week_end; 

希望這有助於組日期O/P(S)

+0

我不想一週的確切的開始日期和結束日期。我想要的是,假設,如果當天是星期二和日期是'4-12-2012',當我選擇'3周'時,我想要在這幾天之間設置記錄。 「27-11-2012至2012年4月12日」爲一週結果集,「20-11-2012至27-11-2012」爲第二週結果集,以及「13-11-2012至20-11-2012」 '作爲第三週結果集。這是可能從您的查詢? – Allen

相關問題