날짜/시간 함수

다음 표에는 날짜/시간 함수가 설명되어 있습니다.
표 1. 날짜/시간 함수
유형 설명
add_months(date,n) date에 대응되는 날짜와 정수 n에서 표시하는 월 수를 더한 값을 리턴합니다. 결과 날짜에 결과 월에서 사용 가능한 것보다 추가적인 일이 포함되면, 결과는 해당 월의 마지막 일입니다. 그렇지 않으면, 결과 날짜가 date와 동일한 일 구성요소를 갖습니다. 예를 들어,
add_months('March 03, 2015',2) 반환 '2015-05-03 00:00:00'
add_months('March 31, 2015',-1) 반환 '2015-02-28 00:00:00'
age(ts,ts)
age(ts)
두 시간소인 간의 간격을 리턴합니다. 리턴 값은 가장 정확한 인수와 동일한 정밀도를 갖습니다. 예를 들어,
  • select age('10-22-2003', '7-6-2002') 리턴 '1 year 3 mons 16 days'
  • select age('10-22-2003 09:46:07.325', '7-6-2002') 리턴 '1 year 3 mons 16 days 09:46:07.325'
단일 인수를 지정하는 경우, 함수는 현재 시간 및 지정된 시간소인 간의 간격을 리턴합니다. 이는 ' age(CURRENT_TIMESTAMP, ts) 과 동일합니다.

Netezza Performance Server SQL 간격 지원은 비표준입니다.

date_part(units,col) col에 대해 지정된 날짜/시간 값, 간격 또는 기간에서 units에서 나타내는 서브필드를 추출합니다. 이 함수는 extract()와 동등합니다.
date_trunc(units,date) date에 대해 지정된 날짜를 units에서 지정하는 정밀도로 자릅니다.
extract(units FROM col) col에 대해 지정된 날짜/시간 값, 간격 또는 기간에서 units에서 나타내는 서브필드를 추출합니다. 이 함수는 date_part()와 동등합니다.
last_day(date) 지정된 날짜에 해당하는 월의 마지막 일을 리턴합니다.
months_between(d1,d2) 날짜 d1d2 간의 월 수를 리턴합니다.
  • d1d2보다 늦으면 결과는 양수입니다.
  • d1d2보다 빠르면 결과는 음수입니다.
  • d1d2가 월의 동일한 일 또는 개별 월의 두 마지막 일인 경우, 결과는 정수입니다.
  • 그렇지 않으면, 결과에 31일 월을 기반으로 분수 부분이 포함됩니다.
예를 들어,
  • select months_between('2015-05-23', '2015-04-23') 리턴 1
  • select months_between('2015-02-28', '2015-05-31') 리턴 -3
  • select months_between('2015-05-15', '2014-05-05')12.322580645를 리턴합니다(전체 12개월 더하기 추가 10일, 즉 10/31=0.322580645.)
next_day(date,weekday) 특정 날짜 이후의 요일에 해당하는 날짜를 리턴합니다. date 인수는 날짜 또는 시간소인일 수 있습니다. 리턴 값의 형식은 date 인수의 형식과 동일합니다.

weekday 인수는 날짜가 리턴되는 요일('SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT')을 표시하는 세 문자 이상의 문자열 리터럴입니다. 이는 작은따옴표로 묶여야 하며 대문자 또는 소문자를 포함할 수 있습니다. 세 번째 문자 이후에 지정된 문자는 무시됩니다. 예를 들어, 2013년 12월 25일 수요일 이후의 첫 토요일은 2013년 12월 28일입니다.

select next_day('12-25-2013','Saturday') 리턴 '2013-12-28'

now() 이 함수는 current_timestamp 함수와 동일합니다. 자세한 내용은 변환 함수를 참조하세요.
overlaps(a,b,c,d) 두 시간 간격이 오버랩되는지 여부를 판별합니다. 데이터 유형에 대해 다음이 적용됩니다.
  • 매개변수 a 및 c의 데이터 유형은 TIME 또는 TIMESTAMP일 수 있지만, 둘 모두에 대해 동일해야 합니다.
  • 매개변수 b 및 d의 데이터 유형은 TIME, TIME WITH TIME ZONE 또는 INTERVAL 중 하나일 수 있지만, 둘 모두에 대해 동일해야 합니다.
Netezza Performance Server SQL은 표준 SQL 중첩 술어를 지원합니다.
duration_add(a,b) 두 인수(ab로 표시됨)가 추가될 때 결과로 나타나는 기간을 리턴합니다. 유효한 인수 데이터 유형의 조합은 표 2에 설명되어 있습니다.
duration_subtract(a,b) Returns the duration that results when the second argument (b) is subtracted from the first argument (a). Valid combinations of argument data types are described in 표 3.
timeofday() 이 함수는 current_timestamp의 상세 문자열 버전입니다. 예를 들어, Mon 01 Dec 2014 16:12:05 EST입니다. 출력 형식은 사용되는 변환 함수에 따라 결정됩니다( 변환 함수 참조)
timezone(timestamp from_tz to_tz) from_tz 시간대의 입력 시간소인 값을 to_tz 시간대 값의 시간소인으로 변환합니다. 예를 들어,
select TIMEZONE(timestamp '2000-07-04 17:00:00', 'America/New_York', 
'America/Los_Angeles');
      TIMEZONE
---------------------
 2000-07-04 14:00:00
(1 row)

시스템은 ICU 라이브러리를 사용하여 제공된 시간대 값을 확인하고 분석합니다. 시간대를 안정적으로 지정하기 위해 Canada/Newfoundland ' 같은 프로그래매틱 ID 또는 GMT-03:30 ' 같은 원시 오프셋 값에 대한 자세한 내용은 http://userguide.icu-project.org/datetime/timezone. 함수가 쿼리에 지정된 시간대를 확인할 수 없는 경우 다음과 같은 메시지와 함께 쿼리가 실패합니다ERROR: Time zone 'invalid_tz' not recognized.

테이블 2. duration_add 함수의 인수에 대한 데이터 유형의 유효한 조합
첫 번째 인수 데이터 유형 두 번째 인수 데이터 유형 반환
날짜 numeric(8,0) 날짜
시간 numeric(6,0) 시간
시간소인 numeric(6,0) 시간소인
numeric(8,0)
numeric(14,0)
numeric(15,1)
numeric(16,2)
numeric(17,3)
numeric(18,4)
numeric(19,5)
numeric(20,6)
테이블 3. duration_subtract 함수의 인수에 대한 데이터 유형의 유효한 조합
첫 번째 인수 데이터 유형 두 번째 인수 데이터 유형 반환
날짜 날짜 numeric(8,0)
numeric(8,0) 날짜
시간 시간 numeric(6,0)
numeric(6,0) 시간
시간소인 시간소인 numeric(20,6)
numeric(6,0) 시간소인
numeric(8,0)
numeric(14,0)
numeric(15,1)
numeric(16,2)
numeric(17,3)
numeric(18,4)
numeric(19,5)
numeric(20,6)
duration_add 또는 duration_subtract 함수의 리턴 값 또는 두 번째 인수의 경우:
  • numeric(6,0) 유형은 hhmmss 양식의 기간을 나타냅내니다(예: 030745는 3시간 7분 45초를 나타냄).
  • numeric(8,0) 유형은 YYYYMMDD 양식의 기간을 나타냅니다(예: 00020525는 2년 5개월 25일을 나타냄).
  • 기타 숫자 값에는 14-20자리가 포함됩니다.
    • 첫 8개 숫자는 YYYYMMDD 형식의 기간의 날짜 부분을 표시합니다.
    • 다은 6개 숫자는 hhmmss 형식의 기간의 시간 부분을 표시합니다.
    • 다음 0-6개 숫자는 초의 미세 단위를 표시합니다.
    예를 들어, 기간 00010521010521999::numeric(17,3)은 1년 5개월 21일 1시간 5분 21.999초의 기간을 나타냅니다.