DATE_TRUNC 스칼라 함수

DATE_TRUNC 함수는 날짜, 시간 또는 시간소인 값을 지정된 시간 단위로 자릅니다.

Read syntax diagramSkip visual syntax diagramDATE_TRUNC(format-string ,datetime-expression)

스키마는 SYSIBM입니다.

format-string

255바이트를 초과하지 않고 모든 앞뒤 공백이 제거된 후 표 1에 나열된 문자열 중 하나인 문자열을 리턴하는 표현식입니다. 결과 서브스트링은 지정된 날짜 및 시간 표현식 유형의 유효한 형식 요소여야 합니다(SQLSTATE 22007). 예를 들어 DATE 값은 첫 시간, 분 또는 초로 잘리지 않으며 TIME 값은 년의 첫 날로 잘리지 않습니다.

datetime 표현식
DATE, TIME 또는 TIMESTAMP값을 리턴하는 표현식입니다. 이러한 데이터 유형의 문자열 표현은 DATE, TIME 또는 TIMESTAMP 값에 명시적으로 캐스트되어야 합니다.
표 1. 출력 문자열에 허용되는 값
형식 문자열이 다음과 같은 경우 ... 날짜 및 시간 표현식이 다음으로 잘립니다. 예: 다음으로 잘림...
'MILLENNIUM' 또는 'MILLENNIUMS' 밀레니엄의 첫 날 1999-02-14 1000-01-01
'CENTURY' 또는 'CENTURIES' 세기의 첫 날 1999-02-14 1900-01-01
'DECADE' 또는 'DECADES' 10년의 첫 날 1999-02-14 1990-01-01
'YEAR' 또는 'YEARS' 년의 첫 날. 1999-02-14 1999-01-01
'QUARTER' 사분기의 첫 날. 2017-05-14 20:38:40.24 2017-04-01 00:00:00
'MONTH' 또는 'MONTHS' 월의 첫 날. 2017-05-14 20:38:40.24 2017-05-01 00:00:00
'WEEK' 주의 첫 날. 2017-05-14 20:38:40.24 2017-05-08 00:00:00
'DAY' 또는 'DAYS' 일의 시작. 2017-05-14 20:38:40.24 2017-05-14 00:00:00
'HOUR' 또는 'HOURS' 시간의 시작. 2017-05-14 20:38:40.24 2017-05-14 20:00:00
'MINUTE' 또는 'MINUTES' 분의 시작. 20:38:40.24576985 20:38:00
'SECOND' 또는 'SECONDS' 초의 시작. 20:38:40.24576985 20:38:40
'MILLISECOND' 또는 'MILLISECONDS' 밀리초의 시작. 20:38:40.24576985 20:38:40.245
'MICROSECOND' 또는 'MICROSECOND' 마이크로초의 시작. 20:38:40.24576985 20:38:40.245769
format-string 값은 대소문자를 구분하지 않습니다.

결과

지정된 날짜 및 시간 표현식에 따라 결과는 다음과 같습니다.
  • DATE 또는 TIMESTAMP 값인 경우 결과는 TIMESTAMP 값임
  • TIME 값인 경우 결과는 TIME 값임
인수가 널(NULL)일 수 있는 경우, 결과는 널(NULL)일 수 있습니다. 인수가 널(NULL)인 경우, 결과는 널(NULL) 값입니다.

예:

  • 예 1: DATE 값을 월의 시작으로 자릅니다.
    values date_trunc('MONTH', DATE('2007-02-18'))
          Result: 2007-02-01 00:00:00
  • 예 2: TIMESTAMP 값을 시의 시작으로 자릅니다.
    values date_trunc('HOUR', TIMESTAMP('2017-02-14 20:38:40.24'));
         Result: 2017-02-14 20:00:00
  • 예 3: TIME 값을 분의 시작으로 자릅니다.
     values date_trunc('MINUTE', TIME('20:38:40'));
         Result: 20:38:00