SELECT /* 오늘날짜 시분초 포함*/
TO_CHAR(SYSDATE,'YYYY/MM/DD HH24:MI:SS') FROM DUAL;
SELECT /* 오늘날짜 00시 00분 00초 */
TO_CHAR(TRUNC(SYSDATE),'YYYY/MM/DD HH24:MI:SS') FROM DUAL;
SELECT /* 오늘날짜 00시 00분 00초 위와 동일*/
TO_CHAR(TRUNC(SYSDATE,'DD'),'YYYY/MM/DD HH24:MI:SS') FROM DUAL;
SELECT /* 마이크로세컨드 */
TO_CHAR(CURRENT_TIMESTAMP, 'YYYY/MM/DD HH24:MI:SS.FF') FROM DUAL;
SELECT /* 밀리세컨드 */
TO_CHAR(CURRENT_TIMESTAMP(3), 'YYYY/MM/DD HH24:MI:SS.FF') FROM DUAL;
SELECT /* 이번달 1일 00시 00분 00초 */
TO_CHAR(TRUNC(SYSDATE,'MON'),'YYYY/MM/DD HH24:MI:SS') FROM DUAL;
SELECT /* 올해 1월 1일 00시 00분 00초 */
TO_CHAR(TRUNC(SYSDATE,'YEAR'),'YYYY/MM/DD HH24:MI:SS') FROM DUAL;
SELECT /* 올해 1월 1일 00시 00분 00초 */
TO_CHAR(TO_DATE('2002','YYYY'),'YYYY/MM/DD HH24:MI:SS') FROM DUAL;
SELECT /* 2월 1일 00시 00분 00초 */
TO_CHAR(TO_DATE('200202','YYYYMM'),'YYYY/MM/DD HH24:MI:SS') FROM DUAL;
SELECT /* 2월 2일 00시 00분 00초 */
TO_CHAR(TO_DATE('20020202','YYYYMMDD'),'YYYY/MM/DD HH24:MI:SS') FROM DUAL;
SELECT /* 2월 2일 00시 00분 01초 */
TO_CHAR(TO_DATE('20020202','YYYYMMDD')+1/68400,'YYYY/MM/DD HH24:MI:SS') FROM DUAL;
TO_CHAR(TO_DATE('20020202','YYYYMMDD')+1/24/60/60,'YYYY/MM/DD HH24:MI:SS')FROM DUAL;
SELECT /* 2월 2일 00시 00분 00초 -> 한달뒤*/
TO_CHAR(ADD_MONTHS(TO_DATE('20020202','YYYYMMDD'),1),'YYYY/MM/DD HH24:MI:SS') FROM DUAL;
SELECT /* 2월 2일 00시 00분 00초 -> 일년전*/
TO_CHAR(ADD_MONTHS(TO_DATE('20020202','YYYYMMDD'),-12),'YYYY/MM/DD HH24:MI:SS') FROM DUAL;
만약 분, 초 단위로 날짜 연산을 하고자 한다면 다음과 같이 해야 겠다.
select sysdate - 1 from dual;
(2) 1시간을 빼고 싶으면
select sysdate - 1/24 from dual;
(3) 1분을 빼고 싶으면
select sysdate - 1/24/60 from dual;
(q) 1초를 빼고 싶은면
select sysdate - 1/24/60/60 from dual;
날짜형 함수
SYSDATE : 현재 시스템의 날짜 및 시간을 구함
LAST_DAY : 지정한 날짜의 해당 월의 마지막 날짜를 구함
MONTHS_BETWEEN : 두 날짜 사이의 개월 수를 구함
ADD_MONTHS : 지정한 날짜로부터 몇 개월 후의 날짜를 구함
ROUND : 날짜에 대한 반올림
TRUNC : 날짜에 대한 버림
SYSDATE : SYSDATE → 10-MAY-99
LAST_DAY(날짜값) : LAST_DAY('17-FEB-98') → 28-FEB-98
MONTHS_BETWEEN(날짜값1, 날짜값2) : MONTHS_BETWEEN('26-APR-97','22-JUL-95') → 21.1290323
ADD_MONTHS(날짜값, 숫자값) : ADD_MONTHS('22-JUL-95',21) → 22-APR-97
ROUND(날짜값, 자리수) : 현재 날짜가 1999년 5월 10일이라고 가정하자.
ROUND(SYSDATE,'MONTH') → 01-MAY-99
TRUNC(날짜값, 자리수) : 현재 날짜가 1999년 5월 10일이라고 가정하자.
TRUNC(SYSDATE,'YEAR') → 01-JAN-99
날짜에 대한 산술연산
날짜 + 숫자 : 날짜 특정한 날로부터 몇일 후의 날짜 계산
날짜 - 숫자 : 날짜 특정한 날로부터 몇일 전의 날짜 계산
날짜 - 날짜 : 숫자 두 날짜 사이의 차이를 숫자로 계산
변환형 함수
TO_CHAR : 숫자나 날짜를 문자열로 변환
TO_NUMBER : 문자를 숫자로 변환
TO_DATE : 문자를 날짜로 변환
- TO_CHAR에서 숫자를 문자로 변환시에 형식에 사용되는 요소
9 : 일반적인 숫자를 나타냄
0 : 앞의 빈자리를 0으로 채움
$ : dollar를 표시함
L : 지역 통화 단위(ex \)
. : 소숫점을 표시함
, : 천단위를 표시함
- TO_CHAR에서 날짜를 문자로 변환시에 형식에 사용되는 요소
SCC : 세기를 표시 S는 기원전(BC)
YEAR : 연도를 알파벳으로 spelling
YYYY : 4자리 연도로 표시
YY : 끝의 2자리 연도로 표시
MONTH : 월을 알파벳으로 spelling
MON : 월의 알파벳 약어
MM : 월을 2자리 숫자로 표시
DAY : 일에 해당하는 요일
DY : 일에 해당하는 요일의 약어
DDD,DD,D : 연도,월,일 중의 날짜를 숫자로 표시
HH , HH24 : (1-12) , (0-23)중의 시간을 표시
MI : 분을 표시
SS : 초를 표시
숫자를 문자로 변환 : TO_CHAR(350000,'$999,999')→ $350,000
숫자를 날짜로 변환 : TO_CHAR(SYSDATE,'YY/MM/DD')→ 95/05/25
TO_DATE(문자값, ‘형식’) : TO_DATE('10 SEPTEMBER 1992','DD MONTH YYYY')→10-SEP-92
TO_NUMBER(문자값) : TO_NUMBER('1234')→ 1234
'컴퓨터활용 > 오라클' 카테고리의 다른 글
INDEX_DESC HINT (0) | 2009.11.07 |
---|---|
ORA-01003 에러 발생 원인 및 조치 (0) | 2009.03.03 |
오라클 리스너 떠 있는지 확인하는 방법 (0) | 2008.08.28 |
오라클에 ' 문자(작은 따옴표) 를 데이타로 저장하고 싶을 때 (0) | 2008.07.14 |
ORACLE exp 예제 (0) | 2008.07.14 |