문자열 ISO-8601 날짜를 오라클의 타임스탬프 데이터 형식으로 변환
VARCHAR2 유형의 ISO-8601 날짜가 있는데, Oracle db에서 해당 문자열 날짜를 타임스탬프로 변환하려면 어떻게 해야 합니까?
날짜 예: "2014-09-12T 11:53:06+00:00"
아마도 다음과 같은 것일 수도 있지만 형식이 무엇인지는 잘 모르겠습니다.
SELECT to_timestamp_tz ('2014-09-12T11:53:06+00:00', ????) FROM DUAL
날짜 형식 모델 요소는 Datetime 형식 모델 설명서에 나와 있습니다.
SELECT to_timestamp_tz ('2014-09-12T11:53:06+00:00', 'YYYY-MM-DD"T"HH24:MI:SSTZH:TZM')
FROM DUAL
TO_TIMESTAMP_TZ('2014-09-12T11:53:06+00:00','YYYY-MM-DD"T"HH24:MI:SSTZH:TZM')
---------------------------------------------------------------------------
12-SEP-14 11.53.06.000000000 +00:00
고정된T
문자 리터럴로 포함할 수 있습니다.
날짜 형식 모델에 다음 문자를 포함할 수 있습니다.
- 하이픈, 슬래시, 쉼표, 마침표 및 콜론과 같은 구두점
- 이중 따옴표로 둘러싸인 문자 리터럴
TZH
나에게 구역 시간이고,TZM
시간대 분입니다.나머지는 더 일반적인 모델 요소입니다.
Oracle DB 데이터베이스(19c)에 대해 쿼리를 수행하는 앱이 있었습니다.앱에서 ISO 8601 형식의 타임스탬프 매개 변수를 보내고 있었고 테이블에는 UTC 시간을 나타내는 타임스탬프를 저장하는 것으로 알려진 Oracle TIMESTAMP 유형(TIMEZONE 유형이 아닌)인 열이 있었습니다.
다음 쿼리가 효과가 있을 것으로 생각했지만 이중 따옴표로 둘러싸인 리터럴을 인식하지 못한 것 같습니다.
SELECT * FROM measurements
WHERE measID = '333'
AND measTime > to_timestamp('2020-11-19T05:00:00Z', 'YYYY-MM-DD"T"hh:mm:ss"Z"');
-- Doesn't Work
-- ORA-01810: format code appears twice
-- 01810. 00000 - "format code appears twice"
다음은 저에게 효과가 있었습니다.
SELECT * FROM measurements
WHERE measID = '333'
AND measTime > SYS_EXTRACT_UTC(TO_UTC_TIMESTAMP_TZ('2020-11-19T05:00:00Z'));
-- Works
ISO 8601을 TIMESTAMP 유형으로 포맷하는 것이 Oracle 문서에서 즉시 명확하지 않았기 때문에 공유합니다.여기서 이 솔루션을 찾았습니다. https://oracle-base.com/articles/18c/to_utc_timestamp_tz-function-18c
언급URL : https://stackoverflow.com/questions/26671557/convert-string-iso-8601-date-to-oracles-timestamp-datatype
'programing' 카테고리의 다른 글
NumPy와 SciPy에서 BLAS/LAPACK 연결을 확인하는 방법은 무엇입니까? (0) | 2023.07.21 |
---|---|
ImportError: pip을 설치한 후 바로 pip'이라는 모듈이 없는 이유는 무엇입니까? (0) | 2023.07.21 |
복사본을 포함한 Numpy 배열 할당 (0) | 2023.07.21 |
이미지 크기를 가져오려면 Python OpenCV2(cv2) 래퍼를 선택하시겠습니까? (0) | 2023.07.21 |
파이어스토어 문서에서 중첩된 오브젝트의 필드를 업데이트하시겠습니까? (0) | 2023.07.21 |