0
我想在豬身上做的事情在sql中非常常見。 我有日期字段的形式爲yyy-mm-dd hh:mm:ss,而且我有另一個字段包含一個表示小時數的整數。有沒有辦法輕鬆地將整數添加到日期時間字段,以便我們得到我們所期望的時鐘數學結果。有沒有辦法在豬身上添加日期時間?
示例:日期爲2013-06-01:23:12:12。
然後,添加2小時
我應該得到2013年6月2日1時12分12秒。
我想在豬身上做的事情在sql中非常常見。 我有日期字段的形式爲yyy-mm-dd hh:mm:ss,而且我有另一個字段包含一個表示小時數的整數。有沒有辦法輕鬆地將整數添加到日期時間字段,以便我們得到我們所期望的時鐘數學結果。有沒有辦法在豬身上添加日期時間?
示例:日期爲2013-06-01:23:12:12。
然後,添加2小時
我應該得到2013年6月2日1時12分12秒。
隨着豬(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)
你知不知道這是否正常工作,如果我需要添加負幾小時呢? –
我正在編輯我的答案,因爲我不能寫,我想寫的,在這裏。請看看它。 – Tariq
謝謝,這正是我需要的! –