2017-02-03 72 views
0

SELECT * FROM mytable WHERE TrackDate DATE_SUB(「2015-01-12 13:47:30」,INTERVAL 7 DAY)和「2015-01-12 13:47: 30"有條件地查詢兩個日期間的數據間隔

MYTABLE

**id-----------|-----keyword(varchar)----|--------trackdate(timestamp)** 

1------------|--------a------------------------|-------2015-01-12 13:47:02 
15------------|------ *NULL* ----------------------|-------2015-01-12 12:47:02 

2------------|--------b------------------------|-------2015-01-12 10:47:02 

3------------|--------c------------------------|--------2015-01-12 1:47:02 

4------------|--------d------------------------|-------2015-01-10 13:47:02 

5------------|--------e------------------------|-------2015-01-10 10:47:02 

6------------|--------f------------------------|-------2015-01-10 1:47:02 

7------------|--------g------------------------|--------2015-01-9 13:47:02 

8------------|--------h------------------------|--------2015-01-9 10:47:02 

9------------|--------i------------------------|--------2015-01-9 1:47:02 

10------------|--------j-----------------------|--------2015-01-6 13:47:02 

11------------|--------k-----------------------|--------2015-01-5 10:47:02 

12------------|--------l-----------------------|--------2015-01-2 1:47:02 

我的輸出應該是:

1------------|--------a------------------------|-------2015-01-12 13:47:02 

4------------|--------d------------------------|-------2015-01-10 13:47:02 

7------------|--------g------------------------|--------2015-01-9 13:47:02 

10------------|--------j-----------------------|--------2015-01-6 13:47:02 

但是我收到了2015-01-12和2015-01-6之間的所有數據。 我想從輸出中消除重複的日期記錄,只需獲取這些重複日期中最大的日期記錄(例如,我取消了2015-01-12的id = 2,3並顯示id 1)。

+0

什麼日子有你* 「2015-01- 13點47分30秒」 *? – RomanPerekhrest

+0

現在檢查@RomanPerekhrest – subhajit

+0

我想你的要求是檢索你的日期範圍內每個不同的日曆日最新時間戳的行。 –

回答

0

使用派生表連同子查詢

select * from mytable where Trackdate IN (
select max(date) from 
(
SELECT * FROM mytable WHERE TrackDate between DATE_SUB("2015-01-12 13:47:30", INTERVAL 7 DAY) AND "2015-01- 13:47:30" 
)tmp 
group by date(trackdate) 
)