我需要将存储为 varchar 的时间值转换为“时间”数据值。但当我进行转换时,它比我的原始值增加了 19 个小时。我需要结果相同的值,但转换为时间。
SELECT '00:51:09' AS ORIGINAL_TIME_VARCHAR,
TO_TIME('00:51:09') AS CONVERT_TO_TIME;
时间转换的结果看起来:19:51:09
这是由于时区的原因。使用时间数据转换时区并不是一个简单的过程。
如果您想要快速解决方案,可以使用此方法:
SELECT '00:51:09' AS ORIGINAL_TIME_VARCHAR,
TO_TIME('00:51:09') - INTERVAL '19 HOURS' AS CONVERT_TO_TIME;