我有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
答案 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
根据需要格式化。