2016-08-15 76 views
0

我有COL_1作爲時間戳,看起來像這樣的5:04:00。我想把它看成是這樣的05:00:00。Teradata的回合時間爲5分鐘

所以基本上輪到一個5分鐘的桶。並且,如果需要,將前導零加到小時。

含義,五個01分00秒變爲05:00:00

14時59分00秒 - > 14:55:00

14時51分零零秒 - > 14:50 :00

7時13分00秒 - > 7點十分00秒

+0

這實際上是一個時間戳嗎?時間戳包含日期部分。有沒有秒,只有幾分鐘? – dnoeth

+0

我的不好!它的VARCHAR(5) – ASuit

+0

沒有秒。在Teradata SQL Assistant中,該列實際上看起來像5:00凌晨5點。 - @ dnoeth – ASuit

回答

1

爲什麼你將它存儲在VarChar而不是Time或Interval中?

CAST(col AS TIME(0) FORMAT 'hh:mi')  - 
((EXTRACT (MINUTE FROM 
    CAST(col AS TIME(0) FORMAT 'hh:mi') 
      ) MOD 5 
) * INTERVAL '1' MINUTE 
) 
+0

太棒了!這工作! – ASuit

0

試試這個

CAST(TO_CHAR(INPUT_TS,'YYYY-MM-DD') || ' ' || 
CASE WHEN EXTRACT(MINUTE FROM INPUT_TS) > 30 THEN 
    TRIM(TO_CHAR(EXTRACT(HOUR FROM INPUT_TS) + 1,'00')) 
ELSE TRIM(TO_CHAR(EXTRACT(HOUR FROM INPUT_TS) ,'00')) 
    END || ':00:00' AS TIMESTAMP(6)) AS YOUR_TS 

格式的要求。