WITH all_seconds (n) AS (
SELECT 0 FROM DUAL
UNION ALL
SELECT n + 1 FROM all_seconds WHERE n + 1 < 86400
)
SELECT
LPAD(TRUNC(n / 3600), 2, '0') || ':' ||
LPAD(TRUNC(MOD(n, 3600) / 60), 2, '0') || ':' ||
LPAD(MOD(n, 60), 2, '0') AS time
FROM all_seconds
3条答案
按热度按时间r55awzrz1#
您可以使用
to_date
函数和'sssss'
参数,如下所示:see a demo(前100秒)
u4dcyp6a2#
或转换为间隔:
bogh5gae3#
不知道为什么你会想要86,399个时间引用,但是一种方法是通过“递归公共表表达式”(递归CTE):
;
| 时间|
| - -----|
| 00:00:00|
| 00:00:01|
| 时间00:00:02|
| 00:00:00:03|
| 00:00:00:04|
| ......这是什么?|
| 时间00:00:56|
| 00:00:57|
| 时间00:00:58|
| 时间00:00:59|
| 00:01:00|
| 时间00:01:01|
| 时间00:01:02|
| 时间00:01:03|