我必须在每分钟的时间演示中创建表格。将有三个字段
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 查询中实现此表创建?
谢谢。
你可以这样做:
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 的数字。其余的只是按照您想要的方式格式化这些数字。
你可以试试:
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
这是一个小提琴