在Teradata的时间为5分钟

时间:2016-08-15 16:54:59

标签: time rounding teradata

我有COL_1作为时间戳,看起来像这样5:04:00。我想把它简化为看起来像这个05:00:00的东西。

所以基本上是一个5分钟的时间。并且,如果需要,将前导零添加到小时。

含义,5:01:00更改为05:00:00

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

十四时51分00秒 - > 14:50:00

7时13分00秒 - > 07:10:00

2 个答案:

答案 0 :(得分: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
) 

答案 1 :(得分: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

根据需要格式化。