EXTRACT 스칼라 함수

EXTRACT 함수는 해당 인수를 기반으로 하는 날짜 및 시간의 분할 영역을 리턴합니다.

날짜 값 추출

Read syntax diagramSkip visual syntax diagramEXTRACT( EPOCHMILLENNIUMMILLENNIUMSCENTURYCENTURIESDECADEDECADESYEARYEARSQUARTERMONTHWEEKDAYDAYSDOWDOY FROM date-expressiontimestamp-expression )

시간 값 추출

Read syntax diagramSkip visual syntax diagramEXTRACT( HOURHOURSMINUTEMINUTESSECONDSECONDSMILLISECONDMILLISECONDSMICROSECONDMICROSECONDS FROM time-expressiontimestamp-expression )

스키마는 SYSIBM입니다.

인수가 널(NULL)일 수 있는 경우, 결과는 널(NULL)일 수 있습니다. 인수가 널(NULL)인 경우, 결과는 널(NULL) 값입니다.

날짜 값 추출

EPOCH
지정된 날짜 또는 시간소인 표현식에 대해 1970-01-01 00:00:00.00 이후 경과된 시간(초)이 리턴됩니다. 표현식이 1970-01-01 00:00:00.00 이후인 날짜 또는 시간소인을 나타내는 경우 값은 양수이며 1970-01-01 00:00:00.00 이전인 날짜 또는 시간소인에 대한 값은 음수입니다.
MILLENNIUM 또는 MILLENNIUMS
지정된 날짜 또는 시간소인 표현식에 대한 전체 1000년기간의 서수가 리턴됩니다. 예를 들어, 2000년 1월 1일과 2999년 12월 31일사이의 날짜의 경우 2입니다.
CENTURY 또는 CENTURIES
지정된 날짜 또는 시간소인 표현식에 대한 전체 100년기간의 서수가 리턴됩니다. 예를 들어, 2000년 1월 1일과 2099년 12월 31일사이의 날짜의 경우 20입니다. 날짜를 "1세기"로 최대 100년까지 세는 서수 시스템과 혼동하지 마십시오. 2000년 1월 1일과 2099년 12월 31일 간의 날짜는 "21세기"가 됩니다.
DECADE 또는 DECADES
지정된 날짜 또는 시간소인 표현식에 대한 전체 10년기간의 서수가 리턴됩니다. 예를 들어, 2010년 1월 1일과 2019년 12월 31일사이의 날짜의 경우 201입니다.
YEAR 또는 YEARS
지정된 날짜 또는 시간소인 표현식의 연도 부분이 리턴됩니다. 결과는 YEAR 스칼라 함수에서 리턴하는 결과와 동일합니다.
QUARTER
지정된 날짜 또는 시간소인 표현식 연도의 분기 (1, 2, 3또는 4) 가 리턴됩니다.
MONTH
지정된 날짜 또는 시간소인 표현식 월의 숫자 (1-12) 가 리턴됩니다. 결과는 MONTH 스칼라 함수에서 리턴하는 결과와 동일합니다.
WEEK
지정된 날짜 또는 시간소인 표현식에 대한 주의 숫자 (1-53) 가 리턴됩니다. 값은 월요일에 시작하는 주의 ISO-8601 정의를 사용하고 일부 연도에는 53주가 있을 수 있고 가끔 1월의 처음 며칠에는 이전 연도의 52번째 또는 53번째 주의 일부로 포함될 수 있습니다.
DAY 또는 DAYS
지정된 날짜 또는 시간소인 표현식의 일 수 (1-31) 가 리턴됩니다. 결과는 DAY 스칼라 함수에서 리턴하는 결과와 동일합니다.
DOW
지정된 날짜 또는 시간소인 표현식의 요일을 표시하는 숫자(일요일의 경우 1, 월요일의 경우 2, ..., 토요일의 경우 7)가 리턴됩니다.
DOY
지정된 날짜 또는 시간소인 표현식의 일을 표시하는 숫자(1-366)가 리턴됩니다.
date-expression
내장 DATE 또는 내장 문자열 데이터 유형의 값을 리턴하는 표현식입니다.

날짜 표현식이 문자열인 경우 CLOB가 아닌 날짜의 올바른 문자열 표현이어야 합니다. 유니코드 데이터베이스에서 날짜 표현식이 그래픽 문자열인 경우 함수가 실행되기 전에 먼저 문자열로 변환됩니다.

시간소인 표현식
내장 TIMESTAMP 또는 내장 문자열 데이터 유형의 값을 리턴하는 표현식입니다.

시간소인 표현식이 문자열인 경우 CLOB가 아닌 시간소인의 올바른 문자열 표현이어야 합니다. 유니코드 데이터베이스에서 시간소인 표현식이 그래픽 문자열인 경우 함수가 실행되기 전에 먼저 문자열로 변환됩니다.

시간 값 추출

HOUR 또는 HOURS
지정된 시간 또는 시간소인 표현식의 시 부분이 리턴됩니다. 결과는 HOUR 스칼라 함수에서 리턴하는 결과와 동일합니다.
MINUTE 또는 MINUTES
지정된 시간 또는 시간소인 표현식의 분 부분이 리턴됩니다. 결과는 MINUTE 스칼라 함수에서 리턴하는 결과와 동일합니다.
SECOND 또는 SECONDS
지정된 시간 또는 시간소인 표현식의 초 부분이 리턴됩니다. 결과는 다음에서 리턴하는 결과와 동일합니다.
  • SECOND (expression, 6) 표현식의 데이터 유형이 TIME값이거나 TIME 또는 TIMESTAMP의 문자열 표시인 경우
  • 표현식의 데이터 유형이 TIMESTAMP (s) 값인 경우 SECOND (expression, s)
MILLISECOND 또는 MILLISECONDS
1000분의 1초까지의 소수 부분을 포함하여 지정된 시간소인 표현식의 초 부분에 1000 (0-59999) 을 곱한 값이 리턴됩니다.
MICROSECOND 또는 MICROSECONDS
1000000 (0-59999999) 을 곱한 백만분의 1초의 소수 부분을 포함하여 지정된 시간소인 표현식의 초 부분이 리턴됩니다.
시간 표현식
내장 TIME 또는 내장 문자열 데이터 유형의 값을 리턴하는 표현식입니다.

시간 표현식이 문자열인 경우 CLOB가 아닌 시간소인의 올바른 문자열 표현이어야 합니다. 유니코드 데이터베이스에서 시간 표현식이 그래픽 문자열인 경우 함수가 실행되기 전에 먼저 문자열로 변환됩니다.

시간소인 표현식
내장 DATE, TIMESTAMP 또는 문자열 데이터 유형의 값을 리턴하는 표현식입니다.

timestamp-expression이 DATE인 경우, 정확하게 자정의 시간(00.00.00)을 가정하여 TIMESTAMP(0) 값으로 변환됩니다.

시간소인 표현식이 문자열인 경우 CLOB가 아닌 시간소인 또는 날짜의 올바른 문자열 표현이어야 합니다. 유니코드 데이터베이스에서 시간소인 표현식이 그래픽 문자열인 경우 함수가 실행되기 전에 먼저 문자열로 변환됩니다. 문자열이 TIMESTAMP(6) 값으로 변환됩니다.

함수 결과의 데이터 유형은 지정되는 날짜 시간 값의 파트에 따라 다릅니다.
  • MILLENNIUM, CENTURY, DECADE, YEAR, QUARTER, MONTH, WEEK, DAY, DOW, DOY, HOUR 또는 MINUTE가 지정된 경우 결과의 데이터 유형은 INTEGER입니다.
  • SECOND가 TIMESTAMP(p) 값으로 지정되면 결과의 데이터 유형은 DECIMAL(2+p, p)이고, 여기에서 p는 정밀 단위 초 정밀도입니다.
  • SECOND가 TIME 또는 TIMESTAMP의 문자열 표시 또는 TIME 값으로 지정되면 결과의 데이터 유형은 DECIMAL(8,6)입니다.
  • MILLISECOND, MILLISECONDS, MICROSECOND 또는 MICROSECONDS가 TIMESTAMP(p) 값과 함께 지정된 경우 결과의 데이터 유형은 INTEGER입니다.
  • EPOCH가 지정되면 결과의 데이터 유형은 BIGINT입니다.

인수가 널(NULL)일 수 있는 경우, 결과는 널(NULL)일 수 있습니다. 인수가 널(NULL)인 경우, 결과는 널(NULL) 값입니다.

예:

PROJECT라는 이름의 테이블에서,
  • col1 컬럼이 날짜 값 '1988-12-25'를 포함합니다. 다음 명령문은 정수값 12를 리턴합니다.
       SELECT EXTRACT(MONTH FROM col1) FROM PROJECT;
  • col2 컬럼이 시간소인 값 '2007-02-14 12:15:06.123456'을 포함합니다. 다음 명령문은 정수값 6123을 리턴합니다.
       SELECT EXTRACT(MILLISECONDS FROM col2) FROM PROJECT;
    다음 명령문은 정수값 6123456을 리턴합니다.
       SELECT EXTRACT(MICROSECONDS FROM col2) FROM PROJECT;
  • col3 컬럼이 날짜 값 '2013-02-14'를 포함합니다. 다음 명령문은 정수값 201을 리턴합니다.
       SELECT EXTRACT(DECADE FROM col3) FROM PROJECT;