我必须用每分钟的时间表示创建表格。 将有三个字段
TIME_DESC值:00:00,00:01,...,12:32,12:33,...,23:58,23:59(根据小时和分钟) 小时值:00-23(根据小时数) 分钟值:00-59(根据会议纪要)
因此,单个记录看起来像|| 01:05 || 01 || 05 ||或|| 22:25 || 22 || 25 ||
如何在单个Oracle查询中实现此表创建?
感谢。
答案 0 :(得分:2)
你可以这样做:
select to_char(hr, '00')||':'||to_char(mi, '00') as time_desc,
to_char(hr, '00') as hours, to_char(mi, '00') as minutes
from (select level-1 from dual connect by level <= 24) as hr cross join
(select level-1 from dual connect by level <= 60) as mi
这里的技巧是生成0到23和0到59之间的数字。其余的只是按照你想要的方式格式化这些数字。
答案 1 :(得分:1)
您可以尝试:
WITH t AS (
SELECT to_date('0001-01-01', 'yyyy-mm-dd') + interval '1' MINUTE * (LEVEL-1) datetime
FROM dual
CONNECT BY LEVEL <= 1440
)
SELECT to_char(t.datetime, 'hh24:mi') time,
to_char(t.datetime, 'hh24') hh,
to_char(t.datetime, 'mi') mi
FROM t
Here是一个小提琴