반응형
Oracle에서 윤초를 처리하는 방법
오늘 밤에는 시계에 1초의 도약이 추가될 것이고 하루의 마지막 시간에 61초가 있을 것입니다.
2015-06-30 23:59:60
그러나 Oracle은 1분에 최대 60초만 지원합니다.
TO_DATE( '2015-06-30 23:59:60', 'YYYY-MM-DD HH24:MI:SS' )
오류:
ORA-01852: seconds must be between 0 and 59
그리고.
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
출력:
| INCR_SECOND_BEFORE | DECR_SECOND_AFTER |
|------------------------|------------------------|
| July, 01 2015 00:00:00 | June, 30 2015 23:59:59 |
오라클에서 비약적인 발전을 이룰 수 있는 방법이 있습니까?
MOS에서-
ORA-01852(Doc ID 1553906.1)로 타임스탬프 열에 윤초 삽입 실패
적용 대상:
Oracle Database - Enterprise Edition - 버전 8.1.7.4 이상
Oracle Database - Standard Edition - 버전 8.1.7.4 이상
본 문서의 정보는 모든 플랫폼에 적용됩니다.
증상:
타임스탬프 열에 윤초를 삽입하려고 하면 실패합니다. ORA-01852: 초는 0에서 59 사이여야 합니다.
원인
59초 이상의 값을 날짜 또는 타임스탬프 데이터 유형에 저장할 수 없습니다.
해결책
이 문제를 해결하기 위해 윤초 레코드를 varchar2 데이터 형식으로 대신 저장할 수 있습니다.
SQL> create table test (val number, t varchar2(30));
Table created.
SQL> insert into test values(123, '2012-06-30T23:59:60.000000Z');
1 row created.
최선의 해결책이 아니라, 유일한 해결책입니다.
언급URL : https://stackoverflow.com/questions/31136211/how-to-handle-leap-seconds-in-oracle
반응형
'programing' 카테고리의 다른 글
유효성 확인 후 후 주문 전에 Woocmerce 체크아웃에서 만들기 (0) | 2023.09.15 |
---|---|
지원되지 않는 SQL92 오류를 수정하려면 어떻게 해야 합니까? (0) | 2023.09.15 |
AFNetworking에 누락된 ASIHTTP 요청 주요 기능은 무엇입니까? (0) | 2023.09.15 |
도커 ENV 대 RUN 내보내기 (0) | 2023.09.15 |
mariadb 10.5의 출력을 설명하는 행 섹션의 백분율의 의미 (0) | 2023.09.15 |