반응형
타임스탬프/날짜 시간을 UTC에서 EST Oracle SQL로 변환
다음과 같은 날짜/시간 값을 가진 필드가 있습니다.
2009-11-17 18:40:05
UTC에 있습니다.쿼리에서 이를 EST로 변환하려면 어떻게 해야 합니까?
저는 이런 걸 시도하고 있는데 오류가 납니다.
// datetime is the field name
SELECT
FROM_TZ(TIMESTAMP TO_DATE(datetime, 'yyyy-mm-dd hh24miss'), 'EST') AS DT
FROM
db_name
데이터베이스에서 작동하기 위해 약간 수정해야 했지만, 이것은 효과가 있었습니다.
select from_tz(to_timestamp('2009-11-17 18:40:05','yyyy-mm-dd hh24:mi:ss'), 'UTC')
at time zone 'America/New_York' from dual
핵심은 "at time zone" 구문입니다.
날짜 필드를 UTC에서 EST로 변환하려면 다음과 같이 해야 합니다.
CAST(FROM_TZ(CAST(DATE_FIELD AS TIMESTAMP), 'UTC')
at time zone 'America/New_York' AS Date) as DESIRED_FIELD_NAME
먼저 원하는 날짜 필드(DATE_FIELD)를 타임스탬프에 캐스팅합니다.캐스트 결과는 FROM_TZ 함수의 첫 번째 매개 변수이며, 이 매개 변수는 TIMESTAMP 유형이어야 합니다. 두 번째 매개 변수는 'UTC'입니다. 이것이 바로 우리가 변경하는 것이기 때문입니다.
그런 다음 함수 호출 결과를 DATE 유형으로 다시 캐스트하고 별칭을 지정합니다.
select to_char(systimestamp at time zone 'EST','HH') EST_TIME,
TO_CHAR(SYSDATE,'HH') EDT_TIME,
NEW_TIME(SYSDATE,
(
CASE
WHEN to_char(systimestamp at time zone 'EST','HH') = TO_CHAR(SYSDATE,'HH')
THEN 'EST'
ELSE 'EDT'
END
),'GMT')
from dual
Oracle에서 사용해 보십시오. 12.2.0.1.0 64비트를 사용하고 있습니다.
SELECT * FROM v$version; --find version information
SELECT SYSDATE UTC, NEW_TIME(SYSDATE, 'GMT', 'EST') EST FROM DUAL; --will give both zones
이것은 나에게도 효과가 있었고, 당신에게도 효과가 있을 것입니다.
날짜와 시간을 얻는 다른 접근법은 다음과 같습니다.
from_tz(CAST(DATE_FIELD AS TIMESTAMP), 'UTC') at time zone 'America/New_York' as DESIRED_FIELD_NAME
언급URL : https://stackoverflow.com/questions/1751075/convert-timestamp-date-time-from-utc-to-est-oracle-sql
반응형
'programing' 카테고리의 다른 글
sys.path /PYthonPATH에 디렉토리 추가 (0) | 2023.07.20 |
---|---|
Dim As Dictionary.컴파일 오류:사용자 정의 유형이 정의되지 않았습니다. (0) | 2023.07.20 |
ODP를 지우는 방법.연결 오류 시 NET 연결 풀? (0) | 2023.07.20 |
ORA-01465: BLOB를 사용하는 동안 오라클의 16진수가 잘못되었습니다. (0) | 2023.07.20 |
각 문자열에 대해 함수/프로시저 실행 (0) | 2023.07.20 |