我需要查询数据库w / c中的特定列,因为VARCHAR
我需要将其转换为时间格式(HH:MM
),然后解码为其范围值,以进一步说明...该列存储数据(时间)为(特定时间)在一天中完成,而不是返回确切的时间,它应该返回完成的时间范围。
Col_1 is VARCHAR2(6)
select col_2, col_1 from table
Col_2 || Col_1
A || 9:56
B || 10:03
C || 21:53
我想要的输出是
Col_2 || Col_1
A || (09:00 - 10:00)
B || (10:00 - 11:00)
C || (2100 - 2200)
真的很感谢您的所有评论,因为我在这部分工作了几天,这让我感到恶心,对不起,我是DB Oracle SQL的新手,并且仍然在学习。:)
像这样?
在您的输出中,2100-2200与其余不一致。我忽略了它。
即使输入为10:00,该怎么办?分别是9:00-10:00和10:00-11:00;我以为你想要后者。
最后,确定为00:00,还是改为24:00(如果在末尾)-请参见我的输出中的第二个示例。
with input_strings ( str ) as (
select '9:49' from dual union all
select '23:00' from dual
),
prep ( dt ) as (
select trunc(to_date(str, 'hh24:mi'),'hh') from input_strings
)
select to_char(dt, 'hh24:mi') || ' - ' || to_char(dt + 1/24, 'hh24:mi') as range
from prep;
RANGE
-------------
09:00 - 10:00
23:00 - 00:00
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句