본문 바로가기

DB

Oracle 날짜 함수

반응형

 

 

현재 연도 지정된 날짜 RR 형식 YY형식
1995 27-OCT-95 1995 1995
1995 27-OCT-17 2017 1917
2001 27-OCT-17 2017 2017
2001 27-OCT-95 1995 2095

 

RR형식

RR 날짜 형식은  YY 요소와 비슷하지만 이 형식을 사용하여 다른 세기를 지정할 수 있다. YY대신  RR 날짜 형

식을 사용하면 반환 값의 세기는 지정된 2자리 연도 및 현재 연돈의 마지막 2자리에 따라 달라진다

 

 

SYSDATE 함수사용

다음 값을 반환한다

  • 날짜
  • 시간 

SYSDATE 는 현재의 데이터베이스 서버 날짜 및 시간을 반환하는 날짜 함수이다. SYSDAT는 다른열 이름을 사용하듯이 사용할 수 있다. 

여기서 참고 해야할 사항이 있다 혹시 미국에서 일 하는 사람과 같이 일을한다면.. ㅋㅋ 말이다.. ㅋㅋ

SYSDATE는 데이터베이가 상주하는 운영체제에 설정도니 현재 날짜 및 시간을 반환한다고 한다 따라서 한국에 있는 유저가 미국에 있는 원격데이터베이스에 연결하면 현재 시간은 미국의 날짜 및 시간을 반환한다 이경우 세션 시간대의 현재 날짜를 반환하는 CURRENT_DATE 함수를 사용할수 있다.

 

 

날짜 연산

 

날짜에 숫자를 더하거나 빼서 결과 날짜 값을 구한다

두 날짜 사이의 일수를 알아내기 위해 빼기 연산을 한다

시간 수를 24로 나눠 날짜에 시간을 더한다

 

날짜 연산

데이터베이스가 날짜를 숫자로 지정하므로 더하기 및 빼기와 같은 산슬 연산자를 사용하여 계산을 수행할 수 있다. 날짜분 아니라 숫자 상수도 더하고 뺄수도 있다.

연산 결과 설명
날짜  + 숫자 날짜  날짜에 일수를 더한다
날짜 - 숫자 날짜  날짜에서 일수를 뺀다
날짜 - 날짜 일 수  한 날짜를 다른 날짜에서 뺀다
날자 + 숫자/24 날짜 날짜에 시간 수를 더한다

 

 

날짜 조작 함수

 

함수 결과
MONTHS_BETWEEN 두 날짜 간의 월 수
ADD_MONTHS 날짜에 월 추가
NEXT_DAY 지정된 날짜의 다음날
LAST_DAY 월의 마지막 날
ROUND 날짜 반올림 (1~15)
TRUNC 날짜 truncate (잘라내기)

 

 

날짜 함수는 Oracle 날짜에 실행된다. 숫자 값을 반환하는 MONTHS_BETWEEN을 제외한 모든 날짜 함수는 DATE 데이터 유형의 값을 반환한다

 

MONTHS_BETWEEN(data1,date2) : data1 과 date2 사이의 월수를 찾는다. 결과는 양수나 음수가 될수 있다. date1 이 date2 보다 늦은 날짜인 경우 결과는 음수이다. 결과에서 정수가 아닌 부분은 월의 일부분을 나타낸다.

ADD_MONTHS(data,n) :data 다음에 오는 지정된 요일('char')의 날짜를 찾는다 chr 값은 요일을 나타내는 숫자나 문자열이 될수 있다.

NEXT_DAY (data,'char') :data 다음에 오는 지정된 요일('char')의 날짜를 찾습니다.  char 값은 요일을 나타내는 숫자나 문자열이 될수 있다.

LAST_DAY(data): data에 해당하는 날짜가 있는 월의 말일 날짜를 찾는다.

 

날짜의 ROUND TRUNC  함수 사용

ROUND 및 TRUNC 함수는 숫자 및 날짜 값에 사용하는데 날짜와 함께 사용할 경우 이러한 함수는 지정된 형식 모델로 반올림하고나 truncate 한다. 따라서 가장 가까운 년 또는 월로 날짜를 반올림 할수 있다. 형식 모델이 월인 경우 1 - 15 현재 월의 시작일이 된다 날짜 16-31 은 다음월의 시작일이 된다. 형식모델이 월 1-6은 현재 연도의 1월1이 된다 , 월 7-12 는 다음 연도의 1월1이다.

 

 

 

 

 

날짜 함수의 대해서 기본적인? ㅋㅋ 알아봤다

필자는 구글링해서 나올법한 문제들을 찾아서 문제를 풀어봤다 나중에 이문제들이 도움이 되기를..

 

 

근무일수가 몇주 인가 몇일인가 출력하라 내림차순으로 

 

 

 

emp테이블에서 10번 부서원의 현재까지의 근무 월수를 계산하여 출력하라.

 

emp테이블에서 10번 부서의 입사 일자로 부터 5개월이 지난 후 날짜를 계산하여라

 

 

10부서원의 입사 일자로 부터 돌아오는 금요일

 

 

--EMP테이블에서 입사한 달의근무 일수를 계산하여라 단 토요일과 일요일도 근무 일수에 포함한다.

 

 

emp테이블에서 10번 부서중 입사한 달의 ROUND와 TRUNC 함수를 비교한다

 

 

테이블에서 10번 부서 입사 일자를 1 may 2002 2002 1 1 형태로

 

 

급여 파에 달러 를 삽입하고 3자리 마다 ,를 출력하라

 

2002 4월 22일 에 압사한 사람의 이름 업무 를 출력하라

 

2010년 이전에 입사한 사람들의 이름, 입사일자를 구하라

 

 

 

반응형

'DB' 카테고리의 다른 글

Oracle(Join ) 유형 및 구분  (0) 2020.12.01
Oracle (변환 함수)  (0) 2020.11.20
Oracle 함수 (문자,숫자)  (0) 2020.11.20
Oracle(기본문제)  (0) 2020.11.18
Postgresql(설치 및 사용법)  (0) 2020.11.15