Teradata 中的舍入时间为 5 分钟

Round time in Teradata to 5 minute

我有 COL_1 作为时间戳,看起来像这样 5:04:00。我想把它四舍五入成这样 05:00:00.

所以基本上四舍五入到 5 分钟一桶。并且,如果需要,将前导零添加到小时数。

意思是,5:01:00变为05:00:00

14:59:00-->14:55:00

14:51:00-->14:50:00

7:13:00-->07:10:00

试试这个

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

根据需要格式化。

为什么将其存储在 VarChar 而不是时间或间隔中?

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