programing

Oracle의 TimeStamp 열에서 시간 부분 추출

kingscode 2023. 7. 20. 23:00
반응형

Oracle의 TimeStamp 열에서 시간 부분 추출

현재 사용 중입니다.MyTimeStampField-TRUNC(MyTimeStampField)Oracle의 타임스탬프 열에서 시간 부분을 추출합니다.

SELECT CURRENT_TIMESTAMP-TRUNC(CURRENT_TIMESTAMP) FROM DUAL

반환됩니다.

+00 13:12:07.100729

타임스탬프 필드에서 시간 부분을 추출하는 것은 괜찮지만, 이를 위한 더 나은 방법(오라클의 내장 기능을 사용하는 것일 수도 있음)이 있는지 궁금합니다.

EXTRACT() 기능은 어떻습니까?

항상 다음과 같은 작업을 수행할 수 있습니다.

select TO_DATE(TO_CHAR(SYSDATE,'hh24:mi:ss'),'hh24:mi:ss') from dual

저는 이것이 타임스탬프에도 작동할 것이라고 믿습니다.

당신은 그냥 데이트를 하고 사용하기를 원합니다.

to_char(cast(SYSDATE as date),'DD-MM-YYYY')

그리고 만약 당신이 단지 시간을 원한다면 사용하세요.

to_char(cast(SYSDATE as date),'hh24:mi:ss')

매개 변수가 모든 변경 사항을 만들고 있습니다.

'DD-MM-YYYY'

그리고.

'hh24:mi:ss'

이 기능은 다음과 같습니다.

Select EXTRACT(HOUR FROM (SYSDATE - trunc(sysdate)) DAY TO SECOND ) From dual;
select TO_DATE(TO_CHAR(SYSDATE,'hh24:mi:ss'),'hh24:mi:ss') from dual

이것은 실제보다 1시간 적은 시간 동안 타임스탬프를 제공합니다.

그렇게 우아하진 않겠지만, 저한테는 효과가 있어요.

SELECT TRUNC(CURRENT_TIMESTAMP) + (CURRENT_TIMESTAMP - TRUNC(CURRENT_TIMESTAMP)) - TRUNC(CURRENT_TIMESTAMP) FROM dual
-----------------
0,851863425925926

그리고 마지막 뺄셈 없이 TIMESTAMP를 시간을 사용하여 DATE로 변환합니다.

SELECT TRUNC(CURRENT_TIMESTAMP) + (CURRENT_TIMESTAMP - TRUNC(CURRENT_TIMESTAMP)) FROM dual
-----------------
20.04.2023 20:31:02
select hour(CURRENT_TIMESTAMP)

언급URL : https://stackoverflow.com/questions/2951858/extract-time-part-from-timestamp-column-in-oracle

반응형