source

Oracle에서 SYSDATE의 UTC 값을 가져오는 방법

factcode 2023. 3. 5. 21:59
반응형

Oracle에서 SYSDATE의 UTC 값을 가져오는 방법

아마 고전일 거야...Oracle에서 SYSDATE의 UTC 값을 쉽게 검색할 수 있는 방법을 알고 계십니까?(8번째 버전에서도 작업을 수행하는 것이 가장 좋습니다).

지금은 커스텀 기능을 사용하고 있습니다.

건배.

스테판

사용할 수 있습니다.

SELECT SYS_EXTRACT_UTC(TIMESTAMP '2000-03-28 11:30:00.00 -02:00') FROM DUAL;

시간대를 변경해야 할 수도 있습니다.

ALTER SESSION SET TIME_ZONE = 'Europe/Berlin';

아니면 읽거나

SELECT SESSIONTIMEZONE, CURRENT_TIMESTAMP FROM dual;
select sys_extract_utc(systimestamp) from dual;

하지만 Oracle 8에서는 작동하지 않습니다.

보통 DATE 컬럼으로 작업합니다.일부 답변에서 사용하는 TIMESTAMP가 아니라 더 정확한 TIMESTAMP입니다.

다음은 현재 UTC 날짜를 그대로 날짜로 반환합니다.

CAST(sys_extract_utc(SYSTIMESTAMP) AS DATE)

나는 종종 이렇게 날짜를 저장하는데, 보통 필드 이름은 로 끝납니다._UTC개발자에게 명확하게 하기 위해서입니다.이것에 의해, 유저의 클라이언트에 의한 최종 변환까지, 타임 존의 복잡함을 회피할 수 있습니다.Oracle은 일부 데이터 유형에 표준 시간대 세부 정보를 저장할 수 있지만 이러한 유형에는 DATE보다 더 많은 테이블 공간이 필요하며 원래 표준 시간대에 대한 지식이 항상 필요한 것은 아닙니다.

사용하고 있는 것:

SELECT CAST(SYSTIMESTAMP AT TIME ZONE 'UTC' AS DATE) FROM DUAL;

저는 잘 되고 있어요.

sysdate 날짜뿐만 아니라 타임스탬프를 사용하는 경우 sysstimestamp를 사용하여 시간대를 지정할 수 있습니다.

select systimestamp at time zone 'UTC' from dual

출력:29-AUG-17 06.51.14.781998000 PM UTC

언급URL : https://stackoverflow.com/questions/1157873/how-to-get-utc-value-for-sysdate-on-oracle

반응형