2012-06-11 24 views
0

例如,給出1339372800,這是星期一,2012年6月11日00:00:00 GMT,我想獲得下一X小時,包括1339372800.所以,在接下來的3個小時,其結果必然是如何在mysql的特定小時後獲得X小時?

 
+------------+ 
| hours  | 
+------------+ 
| 1339372800 | 
| 1339376400 | 
| 1339380000 | 
+------------+ 

我想我需要創建一個循環,但我不知道如何從中繼續。謝謝。

+3

爲什麼在MySQL這樣做呢?在應用程序代碼中通常要容易得多... – eggyal

+0

因爲我需要將它與一個可以獲得每小時行數的視圖進行連接。如果該特定小時內沒有條目,我希望該條目爲0. – luis

+0

但是,爲什麼不在結果集中存在一小時時在應用程序中繪製該推理呢? – eggyal

回答

0

你可以使用一個數字表爲Creating a "Numbers Table" in mysql包含所有小時的時間體貼量和查詢的是:

SELECT hour 
FROM hours 
WHERE hour >= 1339372800 
ORDER BY hour ASC 
LIMIT 3 

這使得查詢非常容易,而且該表不宜過大,無論是。 (小於90K行了10年。)

+0

嗯,那可以工作。但我想我正在尋找更優雅的解決方案(沒有冒犯)。如果我找不到任何其他的作品,我會和你一起去的。 – luis

0

嘗試:

SELECT * 
FROM table 
WHERE 
hours between 1339372800 and DATE_SUB(1339372800, INTERVAL 3 HOUR)