2017-02-24 82 views

回答

1

使用這樣的事情:

SELECT a.mydate, b.`close` 
FROM (
    SELECT max(t.`date`) AS mydate 
    FROM yourTable t 
    GROUP BY DATE_FORMAT(t.`date`,"%Y%m%d%H") 
) a 
LEFT JOIN yourTable b ON a.mydate = b.`date` 
ORDER BY a.`date`; 
+0

感謝您的快速回復!這適用於選擇每個小時的最後時間戳,但由於某些原因,關閉值是錯誤的。 該查詢返回: 2009-05-08 11:59:00 - 1.504595 真正的數據是: 2009-05-08 11:59:00 - 1.50721 –

+0

它返回正確的,如果我拿走MAX()但我明顯需要獲得最後時間戳 –

+0

@Jay P - 我已經改變了我的答案 - 請再次測試 –

0

我適應貝恩德Buffen的答案。他的查詢正確選擇了每個小時的最後一個時間戳,但是關閉的值錯誤。我的查詢下面選擇正確的關閉值。

SELECT table1.close 
FROM `GBPUSD_minutes` table1 
INNER JOIN(
    SELECT max(`date`) as last FROM `GBPUSD_minutes` GROUP BY DATE_FORMAT(`date`,"%Y%m%d%H") 
) table2 
    on table1.date = table2.last 
WHERE `date` > '2010-01-01 00:00:00' AND `date` < '2010-01-30 00:00:00' 

由於貝恩德Buffen給我

DATE_FORMAT(`date`,"%Y%m%d%H") 
0

試試這個。

SELECT t1.* FROM mytable t1 
WHERE t1.`date` = (SELECT MAX(`date`) FROM mytable t2 
    WHERE DATE(t1.`date`) = DATE(t2.`date`) AND HOUR(t1.`date`) = HOUR(t2.`date`) 
);