ORA
0/26 완료

[1번]세션 시간대를 UTC-5로 설정하고, CURRENT_DATE, CURRENT_TIMESTAMP, LOCALTIMESTAMP를 조회하여 차이를 확인하시오.

결과 예시

TZ: -05:00 | CURRENT_DATE: DATE | CURRENT_TIMESTAMP: TIMESTAMP WITH TIME ZONE | LOCALTIMESTAMP: TIMESTAMP

💡 키포인트

CURRENT_DATE: DATE(시간대 없음), CURRENT_TIMESTAMP: TIMESTAMP WITH TIME ZONE(시간대 포함), LOCALTIMESTAMP: TIMESTAMP(시간대 없음). 세 함수 모두 세션 시간대를 반영합니다.

[2번]세션 시간대를 지역명 방식으로 설정하고 SESSIONTIMEZONE을 조회하시오.

결과 예시

SESSIONTIMEZONE: America/New_York

💡 키포인트

지역명으로 설정하면 SESSIONTIMEZONE은 오프셋이 아닌 지역명 문자열을 반환합니다.

[3번]DB 시간대와 세션 시간대를 각각 조회하시오.

결과 예시

DBTIMEZONE: +00:00 (또는 DB 설정값) | SESSIONTIMEZONE: 현재 세션 설정값

💡 키포인트

DBTIMEZONE은 DB 서버 시간대(변경하려면 DBA 권한 필요), SESSIONTIMEZONE은 세션별로 독립 설정 가능합니다.

[4번]세션 시간대를 DB 시간대와 동일하게 설정하시오.

결과 예시

SESSIONTIMEZONE: DB 시간대와 동일 (예: +00:00)

💡 키포인트

ALTER SESSION SET TIME_ZONE = dbtimezone 구문으로 세션 시간대를 DB 시간대와 동일하게 설정합니다.

[5번]SYSDATE와 CURRENT_DATE를 비교하고, 세션 시간대가 -05:00일 때 두 값의 차이를 확인하시오.

결과 예시

DB_TIME: DB 서버 시각 | SESSION_TIME: 세션 시각(-5h) | DIFF_HOURS: -5 (DB가 UTC일 때)

💡 키포인트

SYSDATE는 DB 서버 시간대 기준, CURRENT_DATE는 세션 시간대 기준입니다. 세션 TZ=-05:00, DB TZ=UTC이면 5시간 차이가 납니다.

[6번]web_orders 테이블(order_date TIMESTAMP WITH TIME ZONE, delivery_time TIMESTAMP WITH LOCAL TIME ZONE)을 생성하고 현재 시각으로 데이터를 삽입하시오.

결과 예시

ORDER_DATE: TIMESTAMP WITH TIME ZONE | DELIVERY_TIME: TIMESTAMP WITH LOCAL TIME ZONE

💡 키포인트

TIMESTAMP WITH TIME ZONE은 시간대 정보 그대로 저장, WITH LOCAL TIME ZONE은 DB TZ로 정규화 후 저장(조회 시 세션 TZ로 표시).