相关疑难解决方法(0)

Unix时间和闰秒

关于Unix(POSIX)时间,维基百科说:

由于它处理闰秒,它既不是时间的线性表示,也不是UTC的真实表示.

但Unix date命令似乎并没有真正意识到它们

$ date -d '@867715199' --utc
Mon Jun 30 23:59:59 UTC 1997
$ date -d '@867715200' --utc
Tue Jul  1 00:00:00 UTC 1997
Run Code Online (Sandbox Code Playgroud)

虽然那里应该有一个闰秒Mon Jun 30 23:59:60 UTC 1997.

这是否意味着只有date命令忽略了闰秒,而Unix时间的概念却没有?

shell unix-timestamp leap-second

32
推荐指数
4
解决办法
1万
查看次数

如何处理Oracle中的闰秒

今晚将有一个闰秒添加到时钟,在一天的最后一小时的最后一分钟将有61秒.

2015-06-30 23:59:60
Run Code Online (Sandbox Code Playgroud)

但是,Oracle一分钟只支持60秒:

TO_DATE( '2015-06-30 23:59:60', 'YYYY-MM-DD HH24:MI:SS' )    
Run Code Online (Sandbox Code Playgroud)

错误:

ORA-01852: seconds must be between 0 and 59
Run Code Online (Sandbox Code Playgroud)

SELECT TO_DATE( '2015-06-30 23:59:59', 'YYYY-MM-DD HH24:MI:SS' ) + INTERVAL '1' SECOND AS Incr_Second_Before,
       TO_DATE( '2015-07-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS' ) - INTERVAL '1' SECOND AS Decr_Second_After
FROM   DUAL
Run Code Online (Sandbox Code Playgroud)

给出输出:

|     INCR_SECOND_BEFORE |      DECR_SECOND_AFTER |
|------------------------|------------------------|
| July, 01 2015 00:00:00 | June, 30 2015 23:59:59 |
Run Code Online (Sandbox Code Playgroud)

有没有办法在Oracle中处理闰秒?

oracle

10
推荐指数
1
解决办法
963
查看次数

标签 统计

leap-second ×1

oracle ×1

shell ×1

unix-timestamp ×1