2013-03-05 190 views
0

有一列稱爲DateA。我如何選擇'Yesterday_Date', 'Last_Seven_Day_Date','Life_Time_Date'?從SQL獲取日期

DateA 

2013-02-28 
2013-02-27 
2013-02-26 
--- 
--- 
2013-01-30 
2013-01-29 
2013-01-28 

對於昨天的日期,我認爲我們可以做到:

select date_sub(curdate(),interval 1 day) as 'Yesterday'; 

O/P:

2013-03-04 

- 舉例來說,如果我有兩列日期和ID TableA上。在select語句中,如果我說'Yesterday_Date',它需要顯示1天的數據。如果我說'Last_Seven_Day_Date', 它需要顯示最近7天的數據。如果我說'Life_Time_Date',它需要顯示錶格中的所有數據。

該選擇語句的外觀如何?

謝謝!

+0

「DateA」的**數據類型**是什麼? 「** Life_Time_Date **」是什麼意思? – 2013-03-05 17:10:04

回答

0

這你去與

select date_sub(curdate(),interval 1 day) as Yesterday , 
      date_sub(curdate(),interval 7 day) as seven_days_ago , 
      min(DateA) as Life_Time_Date 

min表示存儲的第一個日期。

1

你的where子句應該是這樣的:

昨日:

WHERE `Date` = date_sub(curdate(), interval 1 day) 

最近7天:

WHERE `Date` >= date_sub(curdate(), interval 7 day); 

所有(Life_Time_Date): 沒有WHERE條款

+0

'Life_Time_Date'呢? – Mario 2013-03-05 17:32:52

+0

對不起,我不知道'Life_Time_Date'是什麼意思,你能解釋一下嗎? – Tom 2013-03-05 18:04:50

+0

我編輯了問題 – Mario 2013-03-05 18:53:49

0

下面是我做的,它的工作原理:

select date_sub(curdate(),interval 1 day), 'Yesterday' union 
select date_sub(curdate(),interval 7 day), 'Last 7' union 
select date_sub(curdate(),interval 14 day), 'Last 14' union 
select date_sub(curdate(),interval 14 day), 'Last 30' union 
select min(dateFact), 'LifeTime' from TBLA; 

然後我seleect列[0]。

謝謝大家。