TO_DSINTERVAL
구문
TO_DSINTERVAL ( ' { sql_format | ds_iso_format } '
[ DEFAULT return_value ON CONVERSION ERROR ] )
sql_format::=
[+ | -] days hours : minutes : seconds [. frac_secs ]
ds_iso_format::=
[-] P [days D]
[T [hours H] [minutes M] [seconds [. frac_secs] S ] ]
노트: 이전 릴리스에서는 TO_DSINTERVAL 함수가 선택적으로 nlsparam 절을 허용했습니다. 이 절은 여전히 하위 호환성을 위해 허용되지만 효과가 없습니다.
목적
TO_DSINTERVAL은 인수를 INTERVAL DAY TO SECOND 데이터 유형의 값으로 변환합니다.
인수로는 CHAR, VARCHAR2, NCHAR 또는 NVARCHAR2 데이터 유형의 문자열로 평가되는 표현식을 지정할 수 있습니다.
TO_DSINTERVAL은 두 가지 형식 중 하나로 인수를 받아들입니다:
- SQL 표준(ISO/IEC 9075)과 호환되는 SQL 간격 형식
- ISO 8601:2004 표준과 호환되는 ISO 기간 형식
SQL 형식에서는 days는 0에서 999999999 사이의 정수, hours는 0에서 23 사이의 정수이며, minutes와 seconds는 0에서 59 사이의 정수입니다. frac_secs는 .0에서 .999999999 사이의 초의 소수 부분입니다. days와 hours 사이에 하나 이상의 공백이 올 수 있습니다. 형식 요소 사이에 추가 공백이 허용됩니다.
ISO 형식에서는 days, hours, minutes 및 seconds는 0에서 999999999 사이의 정수이며, frac_secs는 .0에서 .999999999 사이의 초의 소수 부분입니다. 값에 공백은 허용되지 않습니다. T를 지정하면 반드시 hours, minutes 또는 seconds 값 중 하나를 지정해야 합니다.
선택적인 DEFAULT return_value ON CONVERSION ERROR 절을 사용하여 이 함수가 인수를 INTERVAL DAY TO SECOND 유형으로 변환하는 동안 오류가 발생할 경우 이 함수가 반환하는 값을 지정할 수 있습니다. 이 절은 인수를 평가하는 동안 오류가 발생할 경우에는 효과가 없습니다. return_value는 표현식이거나 바인드 변수일 수 있으며 CHAR, VARCHAR2, NCHAR 또는 NVARCHAR2 데이터 유형의 문자열로 평가되어야 합니다. SQL 형식 또는 ISO 형식 중 하나일 수 있으며, 함수 인수와 동일한 형식일 필요는 없습니다. return_value를 INTERVAL DAY TO SECOND 유형으로 변환할 수 없는 경우 함수가 오류를 반환합니다.
예제
다음 예제는 SQL 형식을 사용하여 2002년 11월 1일에 회사에서 최소 100일 이상 근무한 직원을 hr.employees 테이블에서 선택합니다:
SELECT employee_id, last_name FROM employees
WHERE hire_date + TO_DSINTERVAL('100 00:00:00')
<= DATE '2002-11-01'
ORDER BY employee_id;
EMPLOYEE_ID LAST_NAME
----------- ---------------
102 De Haan
203 Mavris
204 Baer
205 Higgins
206 Giet
다음 예제는 ISO 형식을 사용하여 2009년의 시작으로부터 100일 5시간 후의 타임스탬프를 표시합니다:
SELECT TO_CHAR(TIMESTAMP '2009-01-01 00:00:00' + TO_DSINTERVAL('P100DT05H'),
'YYYY-MM-DD HH24:MI:SS') "Time Stamp"
FROM DUAL;
Time Stamp
-------------------
2009-04-11 05:00:00
다음 예제는 지정된 표현식을 INTERVAL DAY TO SECOND 값으로 변환할 수 없기 때문에 기본값을 반환합니다:
SELECT TO_DSINTERVAL('1o 1:02:10'
DEFAULT '10 8:00:00' ON CONVERSION ERROR) "Value"
FROM DUAL;
Value
-----------------------------
+000000010 08:00:00.000000000
출처: 오라클 레퍼런스
원문 링크: Oracle TO_DSINTERVAL 함수 문서
'코딩 > 오라클 함수' 카테고리의 다른 글
[오라클 레퍼런스 함수] TO_MULTI_BYTE - 단일 바이트(single-byte) 문자를 해당 다중 바이트(multibyte) 문자로 변환 (0) | 2023.08.31 |
---|---|
[오라클 레퍼런스 함수] TO_LOB - LONG 및 LONG RAW 값을 LOB으로 변환 (0) | 2023.08.31 |
[오라클 레퍼런스 함수] TO_DATE - 문자열을 DATE 형식으로 변환 (0) | 2023.08.30 |
[오라클 레퍼런스 함수] TO_CLOB (character) - LOB 열의 NCLOB 값 또는 문자열을 CLOB 값으로 변환 (0) | 2023.08.29 |
[오라클 레퍼런스 함수] TO_CLOB (bfile|blob) - BFILE 또는 BLOB 데이터를 CLOB 데이터로 변환 (0) | 2023.08.29 |
댓글