Oracle Database - 숫자와 날짜 함수
https://kwanghyung.tistory.com/entry/Oracle-Database-%ED%95%A8%EC%88%98%EB%93%A4
Oracle Database - 함수들
https://kwanghyung.tistory.com/entry/Oracle-Database-SELECT%EB%AC%B8-IS-NULLINORDER-BY-%EB%93%B1-%EB%AC%B8%EB%B2%95%EB%93%A4 Oracle Database-SELECT문 IS NULL,IN,ORDER BY 등 문법들 https://kwanghyung..
kwanghyung.tistory.com
<숫자와 관련된 함수>
ABS
ABS( 절대값을 구할 숫자) : 절대값을 구해주는 함수
결과값은 NUMBER 자료형으로 반환
SELECT ABS(-10)
FROM DUAL;
SELECT ABS(-10.9)
FROM DUAL;
MOD
-MOD (숫자,나눌값) : 두 수를 나눈 나머지값을 반환하는 함수
결과값 NUMBERS
SELECT MOD(10,3)
FROM DUAL; --나머지 1
SELECT MOD(-10,3)
FROM DUAL; --나머지 -1
SELECT MOD(10.9,3)
FROM DUAL; --나머지 1.9
ROUND
-ROUND (반올림하고자하는 수,반올림할위치): 반올림 처리 함수
반올림할위치 : 소숫점 기준으로 아래 N번재 수에서 반올림 하겠다.
생략 가능(위치 생략 시 기본값은 0, 소숫점 첫번째 자리에서 반올림을 하겠다
-반올림 결과가 소숫점이 0개이다.)
결과값은 NUMBER타입으로 반환
SELECT ROUND(123.456)
FROM DUAL; --123
SELECT ROUND(123.456,1)
FROM DUAL; --123.5
SELECT ROUND(123.456,2)
FROM DUAL; --123.46
SELECT ROUND(123.456,-2)
FROM DUAL; --100
CEIL
-CEIL(올림처리할숫자): 소수점 아래의 수를 무조건 올림하는 함수
반환형은 NUMBER타입
SELECT CEIL(123.456)
FROM DUAL;
SELECT CEIL(451.089)
FROM DUAL;
FLOOR
-FLOOR (버림처리하고자 하는 숫자) : 소수점아래의 수를 무조건 버림처리해주는 함수
반환형은 NUMBER타입
SELECT FLOOR(123.956)
FROM DUAL;
SELECT FLOOR(2078.404)
FROM DUAL;
TRUNC
-TRUNC (버림처리할숫자,위치) :위치가 지정가능한 버림 처리를 해주는 함수
결과값은 NUMBER타입
위치 : 생략가능, 생략시 기본값은 0 (==FLOOR함수)
SELECT TRUNC(123.687)
FROM DUAL; -- 기본 FLOOR함수랑 동일
SELECT TRUNC(123.565,1)
FROM DUAL; -- 123.5
SELECT TRUNC(123.512,2)
FROM DUAL; --123.51
SELECT TRUNC(123.223,-1)
FROM DUAL; --120
<날짜 관련 함수>
DATE 타입 : 년도, 월, 일, 시, 분, 초를 다 포함한 자료형
SYSDATE : 현재 시스템 날짜 반환
SELECT SYSDATE
FROM DUAL;
MONTHS_BETWEEN(DATE,DATE2) : 두 날짜 사이의 개월수를 반환( 결과값은 NUMBER타입)
만약 DATE2가 더 미래의 날이라면 음수로 반환됩니다.
각 직원별 근무일수,근무 개월수
SELECT EMP_NAME
,FLOOR(SYSDATE-HIRE_DATE)||'일'근무일수
,FLOOR(MONTHS_BETWEEN(SYSDATE,HIRE_DATE))|| '월' 근무개월수
FROM EMPLOYEE;
ADD_MONTHS(DATE,NUMBER) : 특정 날짜에 해당 숫자만큼 개월수를 더한 날짜를 반환한다.(결과값은 DATE타입)
오늘 날짜로부터 5개월 이후
SELECT ADD_MONTHS(SYSDATE,5)
FROM DUAL;
SELECT SYSDATE+100 AS "100일후"
FROM DUAL;
사원들의 입사 1주년
SELECT EMP_NAME, HIRE_DATE, ADD_MONTHS(HIRE_DATE,12)"입사 1주년"
FROM EMPLOYEE;
NEXT_DAY(DATE, 요일(문자/숫자)) : 특정 날짜에서 가장 가까운 해당 요일을 찾아 그 날짜로 반환(결과값이 DATE타입)
SELECT NEXT_DAY(SYSDATE,'토요일')
FROM DUAL;
SELECT NEXT_DAY(SYSDATE,'토')
FROM DUAL;
1: 일요일 2:월 3: 화 4: 수 5: 목 6: 금 7: 토
SELECT NEXT_DAY(SYSDATE,6)
FROM DUAL;
토요일 : SATURDAY 언어가 달라서 오류
SELECT NEXT_DAY(SYSDATE,'SATURDAY')
FROM DUAL;
언어변경
DDL(데이터 정의 언어) : CREATE,ALTER,DROP
ALTER SESSION SET NLS_LANGUAGE = KOREAN;
LAST_DAY(DATE) : 해당 특정 날짜달의 마지막 날짜를 구해서 반환(결과값은 DATE타입)
SELECT LAST_DAY(SYSDATE)
FROM DUAL;
이름,입사일, 입사한 달의 마지막날 조회
SELECT EMP_NAME, HIRE_DATE,LAST_DAY(HIRE_DATE)
FROM EMPLOYEE;
EXTRACT : 년도 또는 월 또는 일 정보를 추출해서 반환
EXTRACT(YEAR FROM 날짜) : 특정 날짜로부터 년도만 추출
EXTRACT(MONTH FROM 날짜) : 특정 날짜로부터 년도만 추출
EXTRACT(DAY FROM 날짜) : 특정 날짜로부터 일만 추출*/
SELECT EXTRACT(YEAR FROM SYSDATE)
,EXTRACT(MONTH FROM SYSDATE)
,EXTRACT(DAY FROM SYSDATE)
FROM DUAL;
사원명, 입사년도, 입사월, 입사일 조회
SELECT EMP_NAME, HIRE_DATE, EXTRACT(YEAR FROM HIRE_DATE)"입사년도"
,EXTRACT(MONTH FROM HIRE_DATE)"입사월"
,EXTRACT(DAY FROM HIRE_DATE)"입사일"
FROM EMPLOYEE;
'DB-디비는 즐겁다' 카테고리의 다른 글
Oracle Database - 집계함수 (1) | 2022.06.22 |
---|---|
Oracle Database -형변환 함수 (0) | 2022.06.21 |
Oracle Database-SELECT문 IS NULL,IN,ORDER BY 등 문법들 (0) | 2022.06.14 |
Oracle Database -SELECT문 WHERE절 및 문법들 (0) | 2022.06.13 |
Oracle SELECT문 (0) | 2022.06.09 |
댓글
이 글 공유하기
다른 글
-
Oracle Database - 집계함수
Oracle Database - 집계함수
2022.06.22 -
Oracle Database -형변환 함수
Oracle Database -형변환 함수
2022.06.21 -
Oracle Database-SELECT문 IS NULL,IN,ORDER BY 등 문법들
Oracle Database-SELECT문 IS NULL,IN,ORDER BY 등 문법들
2022.06.14 -
Oracle Database -SELECT문 WHERE절 및 문법들
Oracle Database -SELECT문 WHERE절 및 문법들
2022.06.13