@DATE

@DATE 함수를 사용하여 소스 열로 전달된 형식을 기반으로 다양한 형식의 날짜 및 시간을 대상 열로 반환합니다. @DATE는 거의 모든 유형의 입력을 적합한 SQL 날짜로 변환합니다. @DATE는 날짜 열의 일부를 추출하거나 날짜를 기반으로 숫자 시간 기록 열을 계산하는 데도 사용할 수 있습니다. 함수

구문

@DATE ('<output_descriptor>', '<input_descriptor>', <source_column>
[, '<input_descriptor>', <source_column>] [, ...])

<'output_descriptor'>

함수 출력입니다. 유효한 값은 대상 열에 필요한 날짜 기술자 및 선택적 리터럴 값(예: 공백 또는 콜론)으로 구성된 문자열입니다. 날짜 설명자는 필요에 따라 함께 묶을 수 있습니다. 날짜 설명자에 대한 설명은 Table 3-1을 참조하십시오. 형식 기술자는 대상에 대한 date/time/timestamp 형식과 일치해야 합니다. Oracle GoldenGate는 필요한 경우 지정된 형식을 무효화하여 수정합니다.

<'input_descriptor'>

소스 입력입니다. 유효한 값은 날짜 기술자와 선택적 리터럴 값(예: 공백 또는 콜론)으로 구성된 문자열입니다. 날짜 설명자는 필요에 따라 함께 묶을 수 있습니다. 예를 들면 다음과 같습니다.

날짜 설명은 표 3-1을 참조하십시오.

<source_column>

<input_descriptor>로 지정된 입력을 제공하는 숫자 또는 문자 소스 열의 이름입니다.

표 1 날짜 설명자

기술자 설명 유효 기간...
참조 세기 입/출력
YY 2자리 연도 입/출력
`YYYY` 4자리 연도 입/출력
`MM` 숫자 월 입/출력
MMM 영숫자 월(예: APR, OCT) 입/출력
`DD` 숫자 월중 특정일 입/출력
DDD 연도의 숫자일(예: 001 또는 365) 입/출력
DOW0 주의 숫자 요일(일요일 = 0) 입/출력
DOW1 주의 숫자 요일(일요일 = 1) 입/출력
다우아 주의 영숫자 일(예: SUN, MON, TUE) 입/출력
HH 시간 입/출력
MI 분 입/출력
`SS` 초 입/출력
JTSLCT 이미 현지 시간인 율리우스 타임스탬프에 사용하거나 율리우스 타임스탬프로 변환할 때 현지 시간을 유지하는 데 사용합니다. 입/출력
JTSGMT Julian 타임스탬프, JTS.와 동일 입/출력
`JTS` 줄리언 타임스탬프 JUL 및 JTS는 숫자 표현식에 사용할 수 있는 숫자를 생성합니다. 단위는 마이크로초입니다. Windows 시스템에서는 Windows 시간 기록의 세분성이 밀리초이므로 값이 0으로 채워집니다. 입/출력
`7월` 줄리안 데이 JUL 및 JTS는 숫자 표현식에 사용할 수 있는 숫자를 생성합니다. 입/출력
TTS NonStop 48비트 시간 기록 입력
`파미스` PHAMIS 애플리케이션 일자 형식 입력
FFFF 분수(최대 마이크로초) 입/출력
`STRATUS` STRATUS 애플리케이션 시간 기록 입/출력
일자 C 시간 기록(초) 입/출력

ISO 8601 날짜-시간 형식 지원

Oracle GoldenGate는 날짜, 시간 및 시간대를 나타내는 국제적으로 인정되는 형식인 ISO 8601을 지원합니다. 다음은 이 ISO 8601 형식에 대한 입력/출력 설명자입니다.

표 2 날짜 설명자

기술자 설명 유효 기간...
ISO8601_DATETIME 선택적 시간대가 있는 ISO 8601 날짜-시간 형식입니다. YYYY-MM-DDTHH:MI:SSTZ와 동일합니다. 입/출력
ISO8601_DATETIME_FRACT 선택적 소수 표시 초 및 선택적 시간대를 포함하는 ISO 8601 날짜-시간 형식입니다. YYYY-MM-DDTHH:MI:SS.FFFFFFTZ와 동일합니다. 입/출력
시간 존 시간대 사양은 +/-HH:MI 또는 ID 지역(예: America/New_York)을 받아들입니다. 입/출력

예제

예 1

2자리 연도가 제공되지만 출력에 4자리 연도가 필요한 경우 올바른 세기를 얻기 위한 여러 옵션이 있습니다.

'CC', 19 or 'CC', 20
'CC', @IF (YY > 70, 19, 20)

이렇게 하면 연도가 70보다 크면 세기가 19로 설정되고, 그렇지 않으면 세기가 20으로 설정됩니다.

예 2

다음은 연도, 월 및 일 열을 날짜로 변환합니다.

date_col = @DATE ('YYYY-MM-DD', 'YY', date1_yy, 'MM', date1_mm, 'DD', date1_dd)

예 3

다음은 날짜 및 시간을 변환하고 초를 0으로 기본 설정합니다.

date_col = @DATE ('YYYY-MM-DD HH:MI:00', 'YYMMDD', date1, 'HHMI', time1)

예 4

다음은 YYYYMMDDHHMISS로 저장된 숫자 열을 SQL 날짜로 변환합니다.

datetime_col = @DATE ('YYYY-MM-DD HH:MI:SS', 'YYYYMMDDHHMISS', numeric_date)

예 5

다음은 YYYYMMDDHHMISS로 저장된 숫자 열을 율리우스 타임스탬프로 변환합니다.

julian_ts_col = @DATE ('JTS', 'YYYYMMDDHHMISS', numeric_date)

예 6

Julian 시간 기록 열은 두 개의 별도 열(YYYY-MM-DD HH:MI:SS 형식의 datetime 열 및 시간 기록의 마이크로초 부분을 보유하는 분수 열)로 변환됩니다.

datetime_col = @DATE ('YYYY-MM-DD HH:MI:SS', 'JTS', jts_field), fraction_col = @DATE ('FFFFFF', 'JTS', jts_field)

예 7

다음은 YYYYMMDDHHMISS로 저장된 숫자 열을 ISO 8601 형식으로 변환합니다.

iso_datetime_col = @DATE ('YYYY-MM-DDTHH:MI:SSTZ', 'YYYYMMDDHHMISS', numeric_date)

예 8

다음은 시간의 전체 계산을 수행합니다. 이름이 dt인 소스 날짜 열에서 날짜 + 5시간으로 변환될 dt5라는 대상 열로 이동합니다. 또한 계산은 ts이라는 소스 시간 기록 열에서 ts5이라는 대상 열로 이동하여 시간 기록 + 5시간으로 변환됩니다.

MAP scratch.t4, TARGET scratch.t4_copy,
COLMAP ( USEDEFAULTS,
dt5 = @DATE ('YYYY-MM-DD HH:MI:SS', 'JTS',
@COMPUTE (@DATE ('JTS', 'YYYY-MM-DD HH:MI:SS', dt) + 18000000000 ) ),
ts5 = @DATE ('YYYY-MM-DD HH:MI:SS.FFFFFF', 'JTS',
@COMPUTE ( @DATE ('JTS', 'YYYY-MM-DD HH:MI:SS.FFFFFF', ts) + 18000000000 ) )
) ;