0

我必须在每分钟的时间演示中创建表格。将有三个字段

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 查询中实现此表创建?

谢谢。

4

2 回答 2

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 的数字。其余的只是按照您想要的方式格式化这些数字。

于 2012-07-16T14:43:11.497 回答
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

是一个小提琴

于 2012-07-16T14:47:33.880 回答