2013-06-25 44 views
0

我想在豬身上做的事情在sql中非常常見。 我有日期字段的形式爲yyy-mm-dd hh:mm:ss,而且我有另一個字段包含一個表示小時數的整數。有沒有辦法輕鬆地將整數添加到日期時間字段,以便我們得到我們所期望的時鐘數學結果。有沒有辦法在豬身上添加日期時間?

示例:日期爲2013-06-01:23:12:12。

然後,添加2小時

我應該得到2013年6月2日1時12分12秒。

回答

6

隨着豬(0.11.0)的最新版本,它應該是可能的。但小時數(時間)應按照ISO8601 Duration Format。它提供了類AddDuration,它允許我們添加一個DateTime對象和一個Duration對象。你可以在page找到更多關於AddDuration的信息。

編輯:

是的,你可以添加否定小時。我想這對我的Ubuntu箱:

輸入:

2009-01-07T01:07:01.000Z,PT1S 
2008-02-06T02:06:02.000Z,PT1M 
2007-03-05T03:05:03.000Z,PT-1H 

查詢:

grunt> a = LOAD '/pig.txt' USING PigStorage(',') AS (dt:datetime, dr:chararray); 
grunt> b = FOREACH a GENERATE AddDuration(dt, dr) AS dt1; 
grunt> dump b; 

輸出:

(2009-01-07T01:07:02.000Z) 
(2008-02-06T02:07:02.000Z) 
(2007-03-05T02:05:03.000Z) 
+0

你知不知道這是否正常工作,如果我需要添加負幾小時呢? –

+0

我正在編輯我的答案,因爲我不能寫,我想寫的,在這裏。請看看它。 – Tariq

+0

謝謝,這正是我需要的! –

相關問題