【发布时间】:2023-03-22 17:12:01
【问题描述】:
我有一个格式如下的表格:
date | flag |dec_time
04-MAY-21 2 0.54
04-MAY-21 5 2.18
12-MAY-20 9 6.1
12-MAY-20 10 8
12-MAY-20 42 4
12-MAY-20 11 4.75
我希望输出是这样的:
date | flag |new_dec_time
04-MAY-21 2 00:54
04-MAY-21 5 02:18
12-MAY-20 9 06:10
12-MAY-20 10 08:00
12-MAY-20 42 04:00
12-MAY-20 11 04.75
基本上将 dec_time 字段中的值转换为时间值,如上面在 new_dec_time 中的示例。
这是我目前的 SQL:
select to_number(replace(dec_time,'.',':')) as new_dec_time
这只是将小数点替换为分号,但不会在需要的地方添加 0。有没有一种简单的方法可以做到这一点?任何想法或建议都会有所帮助。
【问题讨论】:
-
你确定 0.54 是 00:54,即 54 分钟;不是 00:32:24,即 32 分钟和一点点?同样,2.18 可能意味着 02:10:48,而 6.1 可能意味着 06:06:00。取决于
dec部分是否暗示它们真的是 1 小时的以 10 为底的倍数? -
是的,我确定。这是因为我没有在代码中包含的逻辑,但 0.54 将是 00:54.......2.18 = 02:18.......6.1=06:10...... ....8=08:00 等