Top 32 오라클 날짜 함수 14251 Good Rating This Answer

You are looking for information, articles, knowledge about the topic nail salons open on sunday near me 오라클 날짜 함수 on Google, you do not find the information you need! Here are the best content compiled and compiled by the https://toplist.maxfit.vn team, along with other related topics such as: 오라클 날짜 함수 오라클 디데이, 오라클 날짜함수 요일, 오라클 sysdate 포맷, 오라클 날짜 포맷 시분초, 오라클 날짜 사이, 오라클 날짜 계산, 오라클 날짜 더하기, 오라클 날짜 비교

SELECT TO_DATE(‘1919/3/1’, ‘YYYY/MM/DD’) FROM DUAL; 문자열로 ‘1919/3/1’ 이라고 표기했지만 TO_DATE함수에 의해 날짜 형식으로 바뀝니다.


오라클 데이터베이스 SQL 강의 26강 – 날짜 함수(SYSDATE/CURRENT_DATE/SYSTIMESTAMP/CURRENT_…)
오라클 데이터베이스 SQL 강의 26강 – 날짜 함수(SYSDATE/CURRENT_DATE/SYSTIMESTAMP/CURRENT_…)


[오라클] 오라클의 날짜 함수에 대해 알아보자

  • Article author: wyatt37.tistory.com
  • Reviews from users: 35448 ⭐ Ratings
  • Top rated: 4.6 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [오라클] 오라클의 날짜 함수에 대해 알아보자 Updating …
  • Most searched keywords: Whether you are looking for [오라클] 오라클의 날짜 함수에 대해 알아보자 Updating 안녕하세요, 끙정입니다. 오늘은 오라클의 날짜 함수에 대해 알아보겠습니다. 개념은 비슷하지만 DBMS마다 형식과 절차가 전부 다릅니다. 1. 날짜 관련 함수 함수 설명 SYSDATE 현재 날짜를 조사. 운영체제 시간..AI/ML/DX까지 기술의 넓은 영역을 연구합니다 🙂
  • Table of Contents:
[오라클] 오라클의 날짜 함수에 대해 알아보자
[오라클] 오라클의 날짜 함수에 대해 알아보자

Read More

oracle 날짜 함수 정리 : 네이버 블로그

  • Article author: m.blog.naver.com
  • Reviews from users: 22876 ⭐ Ratings
  • Top rated: 4.9 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about oracle 날짜 함수 정리 : 네이버 블로그 oracle 날짜 함수 정리 · TO_CHAR(날짜,’포맷’): 날짜를 문자열로 바꾼다. · TO_DATE(문자열,’포맷’):문자열을 날짜로 ex> TO_DATE(’97-10-14′,’ —–‘) …
  • Most searched keywords: Whether you are looking for oracle 날짜 함수 정리 : 네이버 블로그 oracle 날짜 함수 정리 · TO_CHAR(날짜,’포맷’): 날짜를 문자열로 바꾼다. · TO_DATE(문자열,’포맷’):문자열을 날짜로 ex> TO_DATE(’97-10-14′,’ —–‘)
  • Table of Contents:

카테고리 이동

세바니의블로그

이 블로그 
Oracle
 카테고리 글

카테고리

이 블로그 
Oracle
 카테고리 글

oracle 날짜 함수 정리 : 네이버 블로그
oracle 날짜 함수 정리 : 네이버 블로그

Read More

[Oracle/SQL] 날짜함수 – SYSDATE, NEXT_DAY, LAST_DAY 등

  • Article author: webstudynote.tistory.com
  • Reviews from users: 35392 ⭐ Ratings
  • Top rated: 3.1 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [Oracle/SQL] 날짜함수 – SYSDATE, NEXT_DAY, LAST_DAY 등 오라클에서 날짜를 저장 데이터형 : DATE, TIMESTAMP 1. SYSDATE – 오라클이 설치된 컴퓨터의 시스템 시간을 알려준다. …
  • Most searched keywords: Whether you are looking for [Oracle/SQL] 날짜함수 – SYSDATE, NEXT_DAY, LAST_DAY 등 오라클에서 날짜를 저장 데이터형 : DATE, TIMESTAMP 1. SYSDATE – 오라클이 설치된 컴퓨터의 시스템 시간을 알려준다.  – 오라클에서 날짜를 저장 데이터형 : DATE, TIMESTAMP 1. SYSDATE  – 오라클이 설치된 컴퓨터의 시스템 시간을 알려준다. –SYSDATE 예시) SELECT SYSDATE FROM DUAL; — 오늘 날짜 출력 SELECT TO_CHAR(SYSDA..IT 공부 블로그
  • Table of Contents:
[OracleSQL] 날짜함수 – SYSDATE NEXT_DAY LAST_DAY 등

티스토리툴바

[Oracle/SQL] 날짜함수 - SYSDATE, NEXT_DAY, LAST_DAY 등
[Oracle/SQL] 날짜함수 – SYSDATE, NEXT_DAY, LAST_DAY 등

Read More

[Oracle] 오라클 날짜를 계산하는 다양한 방법 (연산자, 함수)

  • Article author: coding-factory.tistory.com
  • Reviews from users: 23811 ⭐ Ratings
  • Top rated: 3.1 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [Oracle] 오라클 날짜를 계산하는 다양한 방법 (연산자, 함수) 날짜 계산 (연산자) SELECT SYSDATE + 100, –현재날짜 +100일 SYSDATE – 100, –현재날짜 -100일 SYSTIMESTAMP + 100, –현재날짜 +100일 … …
  • Most searched keywords: Whether you are looking for [Oracle] 오라클 날짜를 계산하는 다양한 방법 (연산자, 함수) 날짜 계산 (연산자) SELECT SYSDATE + 100, –현재날짜 +100일 SYSDATE – 100, –현재날짜 -100일 SYSTIMESTAMP + 100, –현재날짜 +100일 … 날짜 계산 (연산자) SELECT SYSDATE + 100, –현재날짜 +100일 SYSDATE – 100, –현재날짜 -100일 SYSTIMESTAMP + 100, –현재날짜 +100일 SYSTIMESTAMP – 100 –현재날짜 -100일 FROM DUAL 위와같이 + , – 연산..
  • Table of Contents:

Header Menu

Main Menu

날짜 계산 (연산자)

날짜 계산 (함수)

다양한 날짜 계산 EXAMPLE

Sidebar – Right

Copyright © 코딩팩토리 All Rights Reserved

Designed by JB FACTORY

티스토리툴바

[Oracle] 오라클 날짜를 계산하는 다양한 방법 (연산자, 함수)
[Oracle] 오라클 날짜를 계산하는 다양한 방법 (연산자, 함수)

Read More

오라클(Oracle) 날짜 포멧 SYSDATE . 유용한 날짜함수들

  • Article author: sidepower.tistory.com
  • Reviews from users: 23983 ⭐ Ratings
  • Top rated: 4.1 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 오라클(Oracle) 날짜 포멧 SYSDATE . 유용한 날짜함수들 문자열 변환 함수 TO_CHAR 를 사용해야 됩니다. 표현 → TO_CHAR(SYSDATE,’날짜 포맷’). 반대로. 문자열을 날짜형으로 변형할 때는 … …
  • Most searched keywords: Whether you are looking for 오라클(Oracle) 날짜 포멧 SYSDATE . 유용한 날짜함수들 문자열 변환 함수 TO_CHAR 를 사용해야 됩니다. 표현 → TO_CHAR(SYSDATE,’날짜 포맷’). 반대로. 문자열을 날짜형으로 변형할 때는 … 오라클 사용할 때 필수로 숙지해야 될 게 바로 날짜 이용과 조작일 거예요. 날짜에 대해 간단하게 정리합니다. ■ SYSDATE 쿼리문을 실행하는 순간의 날짜와 시간, 분, 초를 알려줍니다. 조회하면 기본적으로 「..
  • Table of Contents:

태그

관련글

댓글0

전체 방문자

최근글

인기글

태그

티스토리툴바

오라클(Oracle) 날짜 포멧 SYSDATE . 유용한 날짜함수들
오라클(Oracle) 날짜 포멧 SYSDATE . 유용한 날짜함수들

Read More

[펌글] [오라클] 날짜 관련 함수 (년, 월, 일 더하기 빼기 등등) | 호러블캣의 연구소

  • Article author: itpsolver.com
  • Reviews from users: 21524 ⭐ Ratings
  • Top rated: 5.0 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [펌글] [오라클] 날짜 관련 함수 (년, 월, 일 더하기 빼기 등등) | 호러블캣의 연구소 [출처] [오라클] 날짜 관련 함수. (대박몰 프로젝트) |작성자 그리드맨 2.1 날짜를 다양하기 표시하기 – 날짜를 yyyy/mm/dd 형태로 표시하기 SELECT … …
  • Most searched keywords: Whether you are looking for [펌글] [오라클] 날짜 관련 함수 (년, 월, 일 더하기 빼기 등등) | 호러블캣의 연구소 [출처] [오라클] 날짜 관련 함수. (대박몰 프로젝트) |작성자 그리드맨 2.1 날짜를 다양하기 표시하기 – 날짜를 yyyy/mm/dd 형태로 표시하기 SELECT … [출처] [오라클] 날짜 관련 함수. (대박몰 프로젝트) |작성자 그리드맨 2.1 날짜를 다양하기 표시하기 – 날짜를 yyyy/mm/dd 형태로 표시하기    SELECT TO_CHAR(to_date(’92-FEB-16′,’YY-MON-DD’), ‘yyyy/mm/dd’) FROM dual;   2.2 날짜에 대한 반올림/반내림 값 구하기 – 날짜 중에 일(dd)에 대한 반올림    SELECT ROUND(to_date(’92-FEB-16′,’YY-MON-DD’), ‘DAY’) FROM dual; – 날짜 중에 월(mm)에 대한 반올림   …
  • Table of Contents:
[펌글] [오라클] 날짜 관련 함수 (년, 월, 일 더하기 빼기 등등) | 호러블캣의 연구소
[펌글] [오라클] 날짜 관련 함수 (년, 월, 일 더하기 빼기 등등) | 호러블캣의 연구소

Read More

ORACLE 날짜함수

  • Article author: swpju.tistory.com
  • Reviews from users: 35202 ⭐ Ratings
  • Top rated: 4.4 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about ORACLE 날짜함수 ORACLE 날짜함수 ; SYSDATE, 현재 날짜와 시간을 표시 ; LAST_DAY(d), 날짜 d의 해당월의 마지막 날짜 표시 ; ADD_MONTHS(d,n), 날짜 d에 n개월을 더한 날짜 … …
  • Most searched keywords: Whether you are looking for ORACLE 날짜함수 ORACLE 날짜함수 ; SYSDATE, 현재 날짜와 시간을 표시 ; LAST_DAY(d), 날짜 d의 해당월의 마지막 날짜 표시 ; ADD_MONTHS(d,n), 날짜 d에 n개월을 더한 날짜 … 함수 기능 SYSDATE 현재 날짜와 시간을 표시 LAST_DAY(d) 날짜 d의 해당월의 마지막 날짜 표시 ADD_MONTHS(d,n) 날짜 d에 n개월을 더한 날짜 표시 MONTHS_BETWEEN(d,e) d와 e 날짜간의 월수 표시 NEXT_DAY(d, chr)..초록깨비네 오신걸 환영 합니다:D
    Welcome to GreenGoust’s Blog:D
  • Table of Contents:

ORACLE 날짜함수

티스토리툴바

ORACLE 날짜함수
ORACLE 날짜함수

Read More

[SQL] 오라클(Oracle) 내장 함수 (날짜 함수)

  • Article author: reference-m1.tistory.com
  • Reviews from users: 16724 ⭐ Ratings
  • Top rated: 4.8 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [SQL] 오라클(Oracle) 내장 함수 (날짜 함수) SYSDATE는 시스템의 일자를 DATE 형으로 보관하고 있는 가상 컬럼이다. 어찌 보면 시스템 일자를 보여주는 함수라고도 할 수 있다. 또한 날짜에 숫자를 … …
  • Most searched keywords: Whether you are looking for [SQL] 오라클(Oracle) 내장 함수 (날짜 함수) SYSDATE는 시스템의 일자를 DATE 형으로 보관하고 있는 가상 컬럼이다. 어찌 보면 시스템 일자를 보여주는 함수라고도 할 수 있다. 또한 날짜에 숫자를 … TEMP 테이블 지난 SQL 포스팅에서는 오라클 문자 함수에 대해 알아보았다. 이번에는 날짜 함수에 대해 알아보자. 날짜와 날짜를 더하거나 뺄 수 있을까? 된다는 결과는 무엇일까? DATE 형은 초단위까지 포함한..
  • Table of Contents:

티스토리 뷰

티스토리툴바

[SQL] 오라클(Oracle) 내장 함수 (날짜 함수)
[SQL] 오라클(Oracle) 내장 함수 (날짜 함수)

Read More


See more articles in the same category here: toplist.maxfit.vn/blog.

[오라클] 오라클의 날짜 함수에 대해 알아보자

반응형

안녕하세요, 끙정입니다.

오늘은 오라클의 날짜 함수에 대해 알아보겠습니다.

개념은 비슷하지만 DBMS마다 형식과 절차가 전부 다릅니다.

1. 날짜 관련 함수

함수 설명 SYSDATE 현재 날짜를 조사. 운영체제 시간 기준. 초단위 CURRENT_DATE 접속 세션의 현재 날짜를 조사. 초단위 SYSTIMESTAMP 시간대를 기준으로 한 현재 시간. 나노초 단위 CURRENT_TIMESTAMP 접속 세션 기준으로 한 현재 시간. 나노초 단위 TRUNC 시간 단위로 버림 ROUND 정로를 기준으로 반올림 LAST_DAY(d) 지정한 날짜가 속한 월의 마지막 날 ADD_MONTH(date, n) n개월을 더함 MONTHS_BETWEEN(d1, d2) 두 날짜의 개월수 차이 NEXT_DAY(d, c) d 날짜의 다음 c요일을 찾음 EXTRACT(what FROM d) d 날짜의 요소를 조사. YEAR, MONTH, DAY 등의 요소 지정

현재 시간을 구하는 함수는 해상도와 기준 시간에 따라 4가지가 있습니다.

시스템 시간은 컴퓨터의 시간이며 세션은 세계 표준시를 의미합니다.

보통은 SYSDATE 함수로 초단위의 시간을 구합니다.

함수이지만 인수가 없어 괄호를 붙이지 않으며 오히려 괄호를 붙이면 에러가 뜹니다.

SELECT SYSDATE FROM DUAL;

SYSDATE 함수를 통해 신입사원의 입사일자를 지정해줄 수 있습니다.

INSERT INTO tstaff VALUES(‘김한슬’, ‘기획실’, ‘여’, SYSDATE, ‘수습’, 480, 50); SELECT * FROM tStaff;

새로 삽입하는 레코드는 항상 현재 시간으로 초기화하고 싶다면 테이블을 정의할 때 디폴트로 SYSDATE를 지정합니다.

CREATE TABLE tMoMo ( somedate DATE DEFAULT SYSDATE );

날짜간의 연산은 +, – 연산자를 사용합니다.

피연산자로 수치값을 주는데 1은 하루를 의미합니다.

날짜가 월의 경계를 넘어가면 월의 값도 같이 증가합니다.

SELECT SYSDATE + 15 FROM DUAL; /* 작성일자가 7월 17일 이므로 8월로 넘어간다. */

시나 분을 더할 때는 하루를 시 단위나 분 단위로 나누어 실수값을 더합니다.

하루는 24시간, 1440분, 86400초임을 알면 아주 쉽습니다.

SELECT SYSDATE FROM DUAL; /* 현재 시간 */ SELECT SYSDATE + 5/24 FROM DUAL; /* 현재 시간 + 5시간 */ SELECT SYSDATE – 30/1440 FROM DUAL; /* 현재시간 – 30분 */ SELECT SYSDATE – 80/86400 FROM DAUL; /* 현재시간 – 80초 */

날짜간의 간격을 구할 때는 날자끼리 뺍니다.

다음 쿼리는 입사 후 며칠이나 지났는지 계산합니다.

SELECT name, SYSDATE – joindate FROM tStaff;

시간은 필요 없고 날짜까지만 구하려면 TRUNC 함수로 시간을 자르든가,

ROUND 함수로 정오를 기준으로 반올림 처리합니다.

2. 날짜 포맷

날짜의 요소를 분리하거나 출력 형식을 변경할 때는 문자열과의 타입 변환 과정을 활용합니다.

다음 두 함수는 날짜를 문자열로, 문자열을 날짜로 변환하여 포맷을 지정할 수 있습니다.

TO_CHAR(날짜, 포맷) TO_DATE(문자열, 포맷)

포맷은 아래와 같으며 대소문자는 구분하지 않습니다.

포맷 설명 예 YY 두 자리 년도 21 YYYY 네 자리 년도 2021 RR 두 자리 년도. 50 이상은 19XX 2021 CC 세기 21 YEAR 영문 년도 TWENTY TWENTY-ONE MM 숫자 월 03 MONTH 영문 월 March MON 영문 약어 월 Mar, 3월 DD 숫자 일 14 DDD 1년 기준 일 1~366 DAY 요일 화요일, Friday D 숫자 요일 1~7. 1이 일요일 DY 요일 약어 화, Tue HH 12시간제 시간 1~12 HH24 24시간제 시간 0~23 MI 분 55 SS 초 45 FFn 밀리초.

n은 소수점 자리수이며 1~9까지, 생략시 6 12.34 AM, PM 오전 오후 오전, 오후 W 한달 기준 주 1~5 WW 1년 기준 주 0~53 DL 년월일과 요일 2021년 3월 30일 화요일

분과 월의 앞 글자가 같다보니 분은 MM이 아닌 MI로 되어 있습니다.

시간 또한 HH24로 쓰거나 AM,PM을 같이 쓰기도 합니다.

SYSDATE를 그냥 출력하면 버전이나 설정에 따라 출력 포맷이 달라지지만,

TO_CHAR로 변환하면 원하는 형태를 선택할 수 있습니다.

SELECT TO_CHAR(SYSDATE, ‘YYYY/MM/DD HH24:MI:SS’) FROM DUAL; SELECT TO_CHAR(SYSDATE, ‘YYYY/MM/DD AM HH:MI:SS’) FROM DUAL;

서식이 아닌 임의의 문자를 삽입할 때는 큰 따옴표로 감쌉니다.

한글도 서식 사이에 넣을 수 있습니다.

SELECT TO_CHAR(SYSDATE, ‘YYYY”년” MM”월” DD”일” HH24″시” MI”분” SS”초”‘) FROM DUAL;

TO_CHAR 함수의 포맷에 일부 요소의 서식만 지정하여 날자의 특정 요소만 뽑아 개별적으로 다룰 수도 있습니다.

예를 들어 서식에 ‘YYYY’라고만 적으면 년도만 뽑습니다.

SELECT name, TO_CHAR(joindate, ‘YYYY’) FROM tStaff;

이렇게 추출한 값은 근무 년수나 퇴직금 계산 등에 사용할 수 있으며 그룹핑도 가능합니다.

다음 쿼리는 년도별 입사 사원수를 구합니다.

SELECT TO_CHAR(JOINDATE, ‘YYYY’), COUNT(*) FROM TSTAFF GROUP BY TO_CHAR(JOINDATE, ‘YYYY’) ORDER BY TO_CHAR(JOINDATE, ‘YYYY’);

문자열을 날짜로 변환할 때는 TO_DATE 함수를 사용합니다.

임의의 날짜를 만들 땐느 문자열 형태로 날짜 상수를 적고 TO_DATE로 변환합니다.

다음 쿼리는 3.1운동이 일어난 날짜를 구합니다.

SELECT TO_DATE(‘1919/3/1’, ‘YYYY/MM/DD’) FROM DUAL;

문자열로 ‘1919/3/1’ 이라고 표기했지만 TO_DATE함수에 의해 날짜 형식으로 바뀝니다.

이때 뒤쪽 서식으로 날짜의 포맷을 정확히 알려줘야 합니다.

서식과 포맷만 일치하면 어떤 형식이든 사용할 수 있습니다.

SELECT TO_DATE(‘1919-3-1’, ‘YYYY-MM-DD’) FROM DUAL; SELECT TO_DATE(‘19190301’, ‘YYYYMMDD’) FROM DUAL;

구분자를 – 로 지정해도 되고 구분자 없이 자리수를 정확히 맞춰 주어도 잘 변환합니다.

구분자 / 나 – 를 쓰거나 자리수가 정확하면 포맷을 생략해도 잘 알아 먹습니다.

SELECT TO_DATE(‘1919/3/1’) FROM DUAL; SELECT TO_DATE(‘1991-3-1’) FROM DUAL; SELECT TO_DATE(‘19190301’) FROM DUAL;

그만 알아보겠습니다.

출처

http://www.yes24.com/Product/Goods/101637633?OzSrank=1

728×90

oracle 날짜 함수 정리

# 날짜계산

select months_between(sysdate,to_date(‘2002-12-22′,’yyyy-mm-

dd’))

— months_between(A,B) = A-B/30

–select add_months(sysdate,4) — 특정일의 달수 더한 날

–select next_day(sysdate,’friday’) — 특정일의 다음주 요일

–select last_day(sysdate) — 특정일의 해당 월의 마지막 날

–select round(sysdate,’dd’) — 특정일의 반올림(오후면 다음날..)

–select trunc(sysdate,’ww’) — 특정일의 전주 토요일(해당 전주의 마지막 날)에해당하는 날짜

–select trunc(sysdate,’D’) — 특정일의 주 일요일(해당 주의 첫째 날)에해당하는 날짜

from dual

/* 어제 */ 날짜칼럼 BETWEEN TRUNC(SYSDATE-1) AND TRUNC(SYSDATE-1)+0.99999421

/* 오늘 */ 날짜칼럼 BETWEEN TRUNC(SYSDATE) AND TRUNC(SYSDATE) + 0.99999421

/* 내일 */ 날짜칼럼 BETWEEN TRUNC(SYSDATE+1) AND TRUNC(SYSDATE+1)+0.99999421

/* 금주 */ 날짜칼럼 BETWEEN TRUNC(SYSDATE+1)-TO_CHAR(SYSDATE,’D’)

AND TRUNC(SYSDATE+1)-TO_CHAR(SYSDATE,’D’)+6.99999421

/* 차주 */ 날짜칼럼 BETWEEN TRUNC(SYSDATE+8)-TO_CHAR(SYSDATE, ‘D’)

AND TRUNC(TRUNC(SYSDATE)+14.99999421)-TO_CHAR(SYSDATE, ‘D’)

/* 금월 */ 날짜칼럼 BETWEEN TRUNC(SYSDATE+1)-TO_CHAR(SYSDATE,’DD’)

AND TRUNC(LAST_DAY(SYSDATE))+0.99999421

/* 전월 */ 날짜칼럼 BETWEEN TRUNC(ADD_MONTHS(SYSDATE,-1)+1)-TO_CHAR(SYSDATE,’DD’)

AND TRUNC(LAST_DAY(ADD_MONTHS(SYSDATE, -1)))+0.99999421

/* 차월 */ 날짜칼럼 BETWEEN ADD_MONTHS(TRUNC(SYSDATE),1)-TO_CHAR(SYSDATE,’DD’)+1

AND LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE),1)+0.99999421)

# 특정일 까지의 간격을 년, 개월, 일로 표현하기

SELECT

TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE(‘19970101’, ‘YYYYMMDD’))/12) “년”,

TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE(‘19970101’, ‘YYYYMMDD’)) –

TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE(‘19970101’, ‘YYYYMMDD’))/12) * 12) “개월”,

TRUNC((MONTHS_BETWEEN(SYSDATE,TO_DATE(‘19970101’, ‘YYYYMMDD’)) –

TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE(‘19970101’, ‘YYYYMMDD’)))) * 30.5) “일”

FROM DUAL;

# 당월의 주차 구하기..

SELECT

‘20040511’ as “날짜”

, ceil((to_number(substrb(‘20040511’, -2, 2)) + 7 – to_number(TO_CHAR(TO_DATE(‘20040511′,’YYYYMMDD’),’D’)))/7) as “월별 주차”

from dual;

# 시간 계산 SQL

SELECT TRUNC(TO_DATE(‘20010502223443′,’YYYYMMDDHH24MISS’)-TO_DATE(‘20010501213344′,’YYYYMMDDHH24MISS’)) || ‘ day ‘ ||

TRUNC(MOD((TO_DATE(‘20010502223443′,’YYYYMMDDHH24MISS’)-TO_DATE(‘20010501213344′,’YYYYMMDDHH24MISS’)),1)*24) || ‘ hour ‘ ||

TRUNC(MOD((TO_DATE(‘20010502223443′,’YYYYMMDDHH24MISS’)-TO_DATE(‘20010501213344′,’YYYYMMDDHH24MISS’))*24,1)*60) || ‘ minute ‘ ||

TRUNC(ROUND(MOD((TO_DATE(‘20010502223443′,’YYYYMMDDHH24MISS’)-TO_DATE(‘20010501213344′,’YYYYMMDDHH24MISS’))*24*60,1)*60)) || ‘ sec ‘

” Time Interval ”

FROM DUAL ;

TO_CHAR(날짜,’포맷’): 날짜를 문자열로 바꾼다.

TO_DATE(문자열,’포맷’):문자열을 날짜로 ex> TO_DATE(’97-10-14′,’ —–‘)

ADD_MONTHS(날짜,n):현재 날짜에 n개월수를 더한다.

MONTHS_BETWEEN(날짜1,날짜2):두 날짜의 개월수의 차를 구한다.

LAST_DAY(날짜):그 달의 마지막 날짜를 구한다.

NEXT_DAY(날짜,’요일’):날짜로 부터 다음에 나오는 요일은 며칠인가

next_day(sysdate,’금요일’)

날짜 + n : 날짜에다 n 일을 더한다.

포맷:

yy : 년도를 2자리로

yyyy : 년도를 4자리로

year : 영어 철자로 표시

mm :월을 표시(01-12)

mon :월을 표시(DES….):약자로 나온다.

month :월을 표시(1월,2월,….혹은 ,DESEMBER)

d :일을 표시(주에 대한 일)

dd :일을 표시 (월에 대한 일)

ddd :일을 표시 (년에 대한 일)

Q : 분기를 구한다.

DAY :요일 (월요일)

DY :요일(월)

HH & HH12 :시간을 12시간제로

HH24 :24시간제로

MI :분

SS :초

AM & PM & A.M & P.M :12시간제 일때 오전 오후를 표시

접미사로 사용하는 포맷

TH:서수로 표시 ex> 4 -> DD ->4

4-> DDTH -> 4TH

SP:철자로 표시 ex> 4 ->DDSP -> FOUR

SPTH & THSP ex> 4 -> DDSPTH -> FOURTH

근무한 년월 수 ex> column “근무년수” Format a 14;

위의 내용을 참고하면 된다.

날짜함수를 사용하는 쿼리문의 예제

현재날짜에 하루를 더하는 값.

SELECT to_char(SYSDATE+1, ‘yyyy-MM-dd’) FROM DUAL

현재날짜에 20개월을 더하는 값

SELECT to_char(ADD_MONTHS(SYSDATE, 20),’yyyy-MM-dd’) FROM DUAL) GC_ENDDT

여기에서 20은 컬럼명에 따라 변환될 수 있다.



 출처: http://opensourceforge.tistory.com/305

======================================================================

Database : Oracle 10g

사용환경

사내전산팀을 유지보수하는 개발자로 이제 벌써 9개월이나 되었습니다. 이렇게 일하다보면 금세 3~4년은 지나갈 것 같더군요. 개발자로 일하면서 느낀 것 중에 하나는 RDBMS는 양날의 검이라는 것입니다. 잘 사용하면 나를 살리고 내 가족을 살리겠지만, 잘 못 사용하면 나 자신을 죽게만드는 무서운 도구라는 말입니다.

학교에서 오라클을 배울 때는 정말 간단한 것만 배워서… 처음 일을 시작할 때 엄청난 길이의 쿼리와 그 복잡도에 두려움이 앞섰었지만, 이제는 꽤나 익숙해져서 두려움을 느끼진 않게 되었네요… 그렇지만 여전히 기존에 운영 중인 쿼리를 변경하거나, 개발 당시에는 데이터의 양이 적어서 성능이슈가 없었던 쿼리를 튜닝하게 될 때는 그 복잡함에 치가 떨린 적도 한 두 번이 아닙니다.

다른 RDBMS를 사용해보지 않아서 잘은 모르겠지만, 오라클에는 정말 다양한 내장함수들이 있습니다. 그 중에서 이 포스트는 numtodsinterval()이라는 내장함수를 활용하여 두 시간의 차이를 계산하는 법을 설명해볼까 합니다.

오라클에서 날짜와 관련된 기본적인 데이터는 DATE형입니다. 그렇지만 여러 가지 이유(UI프레임워크에서 사용하기 편하게…)로 DATE형을 사용하지 않고 문자형 데이터인 VARCHAR2로 보관하는 경우가 있습니다. 여기에서도 VARCHAR2형으로 되어있는 날짜데이터를 활용하여 계산을 하려고 합니다.

VARCHAR2와 DATE형간의 형변환은 아래와 같습니다.

1) VARCHAR2 -> DATE 형변환

1 2 SELECT ‘20111125203138’ time1 , ‘20111203123557’ time2 FROM DUAL;

두 개의 날짜 데이터가 있다고 가정합니다. ‘YYYYMMDDhhmmss’의 형태입니다. 오라클의 방식으로는 YYYYMMDDHH24MISS이지만…

1 2 3 4 5 SELECT TO_DATE ( time1 , ‘YYYYMMDDHH24MISS’ ) time1_converted , TO_DATE ( time2 , ‘YYYYMMDDHH24MISS’ ) time2_converted FROM ( SELECT ‘20111125203138’ time1 , ‘20111203123557’ time2 FROM DUAL ) ;

TIME1 TIME2 ————– ————– 20111125203138 20111203123557

VARCHAR2 -> DATE형으로의 변환은 위처럼 TO_DATE() 내장함수를 이용하면 됩니다.

TIME1_CONVERTED TIME2_CONVERTED ————— ————— 11/11/25 11/12/03

변환이 완료되면, DATE형 간의 연산이 가능하여 날짜의 차이를 구할 수 있습니다.

2) DATE -> VARCHAR2 형변환

유사한 방법으로 반대로의 형변환도 가능합니다.

1 2 SELECT TO_CHAR ( SYSDATE , ‘YYYYMMDDHH24MISS’ ) time_converted FROM DUAL;

TIME_CONVERTED ————– 20111203205643

TO_CHAR() 내장함수를 이용하면, 현재 시간을 VARCHAR2형 문자열로 반환합니다.

두 날짜의 차이를 계산하는 간단한 방법은 DATE형으로 변환하여 서로 빼는 것입니다.

1 2 3 4 5 SELECT TO_DATE ( time2 , ‘YYYYMMDDHH24MISS’ ) – TO_DATE ( time1 , ‘YYYYMMDDHH24MISS’ ) AS timediff FROM ( SELECT ‘20111125203138’ time1 , ‘20111203123557’ time2 FROM DUAL ) ;

TIMEDIFF ———- 7.66966435

위 처럼 DATE형을 (-) 연산자로 단순하게 연산을 하면, 두 시간의 날짜차이를 간단하게 구할 수 있습니다.

문제는 날짜의 차이 뿐만 아니라 시간, 분, 초 단위까지의 차이를 알고 싶다면 상당히 복잡하게 계산을 해야만 합니다. 아래처럼 말이죠…

1 2 3 4 5 6 7 8 9 10 SELECT trunc ( TO_DATE ( time2 , ‘YYYYMMDDHH24MISS’ ) – TO_DATE ( time1 , ‘YYYYMMDDHH24MISS’ ) , 0 ) DAY , trunc ( ( TO_DATE ( time2 , ‘YYYYMMDDHH24MISS’ ) – TO_DATE ( time1 , ‘YYYYMMDDHH24MISS’ ) ) * 24 , 0 ) – trunc ( TO_DATE ( time2 , ‘YYYYMMDDHH24MISS’ ) – TO_DATE ( time1 , ‘YYYYMMDDHH24MISS’ ) , 0 ) * 24 HOUR , round ( MOD ( ( TO_DATE ( time2 , ‘YYYYMMDDHH24MISS’ ) – TO_DATE ( time1 , ‘YYYYMMDDHH24MISS’ ) ) * 24 * 60 , 60 ) ) MINUTE FROM ( SELECT ‘20111125203138’ time1 , ‘20111203123557’ time2 FROM DUAL ) ;

DAY HOUR MINUTE ———- ———- ———- 7 16 4

쿼리를 보면 상당히 복잡합니다. 더군다나 만약에 초단위까지 계산하려면 더 복잡해집니다.

이제는 보다 간단한 방법으로 시간차이를 구해보도록 하겠습니다.

1 2 3 4 SELECT NUMTODSINTERVAL ( TO_DATE ( time2 , ‘YYYYMMDDHH24MISS’ ) – TO_DATE ( time1 , ‘YYYYMMDDHH24MISS’ ) , ‘DAY’ ) diff FROM ( SELECT ‘20111125203138’ time1 , ‘20111203123557’ time2 FROM DUAL ) ;

DIFF —————————— +000000007 16:04:18.999999999

출력의 형태는 조금 다르지만, 결과적으로는 위와 동일한 수치가 나왔습니다. 7일 16시간 4분이죠. 이제는 단지 원하는 형태로 출력형태만 바꿔주면 끝입니다. 위와 동일한 형태로 바꿔보면…

1 2 3 4 5 6 SELECT TO_NUMBER ( SUBSTR ( diff , 2 , 9 ) ) DAY , TO_NUMBER ( SUBSTR ( diff , 12 , 2 ) ) HOUR , TO_NUMBER ( SUBSTR ( diff , 15 , 2 ) ) MINUTE , TO_NUMBER ( SUBSTR ( diff , 18 , 2 ) ) SECOND FROM ( SELECT NUMTODSINTERVAL ( TO_DATE ( time2 , ‘YYYYMMDDHH24MISS’ ) – TO_DATE ( time1 , ‘YYYYMMDDHH24MISS’ ) , ‘DAY’ ) diff FROM ( SELECT ‘20111125203138’ time1 , ‘20111203123557’ time2 FROM DUAL ) ) ;

DAY HOUR MINUTE SECOND ———- ———- ———- ———- 7 16 4 18

이전의 쿼리보다는 보다 간결해졌다는 것을 알 수 있을 것입니다. 위 처럼 substr을 이용해서 강제로 글자를 잘라내도 관계없고, 정규표현을 이용해도 무관합니다.

여전히 포스팅 하나를 하기가 쉽지가 않네요… 혼자서만 알고 있는 것은 어렵지 않은데, 그것을 남에게 전달하는 것은 차원이 다른 일인 것 같습니다. 매번 포스팅할 때마다 느끼는 것이지만… 분야와 질과 양을 막론하고 어찌되었든 자신의 이름으로 책을 쓴다는 것은 정말 너무나도 대단한 업적을 한 것이라고…

시간이 날 때마다 포스팅을 하려고 노력은 하지만… 정말 쉽지가 않네요;; 이만 글을 줄이도록 하겠습니다.

SYSDATE, NEXT_DAY, LAST_DAY 등

– 오라클에서 날짜를 저장 데이터형 : DATE, TIMESTAMP

1. SYSDATE

– 오라클이 설치된 컴퓨터의 시스템 시간을 알려준다.

–SYSDATE 예시) SELECT SYSDATE FROM DUAL; — 오늘 날짜 출력 SELECT TO_CHAR(SYSDATE, ‘MM-DD-YYYY HH24:MI:SS’) FROM DUAL; — 현재 월-일-년도 시간:분:초 출력 –SYSDATE 연산 예시) SELECT SYSDATE+1 FROM DUAL; — 내일 날짜 출력 SELECT TO_CHAR(SYSDATE-30, ‘MM-DD-YYYY HH24:MI:SS’) FROM DUAL; — 30일 전 출력 SELECT TO_CHAR(SYSDATE-8/24, ‘MM-DD-YYYY HH24:MI:SS’) FROM DUAL; — 8시간 전 출력 SELECT TO_CHAR(SYSDATE-30/1440, ‘MM-DD-YYYY HH24:MI:SS’) FROM DUAL; — 30일 전 출력

2. MONTHS_BETWEEN

– 형식 : MONTHS_BETWEEN(날짜1, 날짜2)

– 기능 : 날짜1과 날짜2 사이의 개월수를 구해준다.

– 날짜1>날짜2 (즉, 날짜1이 더 최근, 날짜2가 더 예전)이면 결과값은 (+)

날짜1<날짜2 이면 결과값은 (-) - 소숫점까지 나온다. --MONTHS_BETWEEN 예시) SELECT MONTHS_BETWEEN(SYSDATE, DATE '2019-05-12') FROM DUAL; --결과: 19.05.12로부터 몇개월 지났는지 SELECT MONTHS_BETWEEN(DATE '2020-02-03', DATE '2019-12-02') FROM DUAL; --결과: 2.03 SELECT MONTHS_BETWEEN(DATE '2019-12-02', DATE '2020-02-03') FROM DUAL; --결과: -2.03 3. NEXT_DAY - 형식 : NEXT_DAY('기준일자', '찾을 요일') - 기능 : 기준일자로부터 다음번 지정 요일이 몇일인지 - 요일표기 : 1) 영문판 : 'SUNDAY', 'SUN' 과 같이 기재 2) 한글판 : '일요일', '일' 과 같이 기재 3) 숫자 : 일요일부터 1,2,3,4,... 순서로 센다. (1: 일요일, 2:월요일, ... 7: 토요일) --NEXT_DAY 예시) --오라클 영어판 설치한 경우) SELECT NEXT_DAY(DATE '2020-01-01', 'SUNDAY') FROM DUAL; SELECT NEXT_DAY(DATE '2020-01-01', 'SUN') FROM DUAL; SELECT NEXT_DAY(DATE '2020-01-01', 1) FROM DUAL; --오라클 한글판 설치한 경우) SELECT NEXT_DAY(DATE '2020-01-01', '일요일') FROM DUAL; --결과: 20/01/05 (가장 가까운 다음 일요일) SELECT NEXT_DAY(DATE '2020-01-01', '일') FROM DUAL; --결과: 20/01/05 (가장 가까운 다음 일요일) SELECT NEXT_DAY(DATE '2020-01-01', 1) FROM DUAL; --결과: 20/01/05 (가장 가까운 다음 일요일) SELECT NEXT_DAY(DATE '2020-01-01', '토') FROM DUAL; --결과: 20/01/04 (가장 가까운 다음 토요일) SELECT NEXT_DAY(DATE '2020-01-01', 7) FROM DUAL; --결과: 20/01/04 (가장 가까운 다음 토요일) 4. LAST_DAY - 형식 : LAST_DAY(날짜) - 기능 : 해당 월의 마지막 날짜를 알려준다. --LAST_DAY 예시) SELECT LAST_DAY(SYSDATE) FROM DUAL; --결과: 이번달 마지막 날짜 SELECT LAST_DAY(ADD_MONTHS(SYSDATE,1)) FROM DUAL; --결과: 다음달 마지막 날짜 SELECT LAST_DAY('20/08/01') FROM DUAL; --결과: 20/08/31 (2020년 8월의 마지막 날짜) 5. ADD_MONTHS - 형식 : ADD_MONTHS(날짜, 개월수) - 기능 : 해당 날짜로부터 지정한 개월수 뒤의 날짜를 알려준다. --ADD_MONTHS 예시) SELECT ADD_MONTHS('19/12/02',6) FROM DUAL; --결과: 20/06/02 (19/12/02로부터 6개월 후의 날짜) ROUND와 TRUNC는 숫자함수로써 각각 소수점 반올림, 버림 기능을 하기도 하지만 날짜함수로써도 사용된다. 6. ROUND - 형식 : ROUND(날짜, 날짜형식) - 기능 : 날짜를 반올림 한다. --ROUND 예시) SELECT TO_CHAR( ROUND( TO_DATE( '2020-02-03 18:53:29', 'YYYY-MM-DD HH24:MI:SS' ) ), 'YYYY-MM-DD' ) FROM dual; --결과: 2020-02-04 ('2020-02-03 18:53:29'을 반올림한 날짜) 7. TRUNC - 형식 : TRUNC(날짜, 날짜형식) - 기능 : 날짜를 버림한다. --TRUNC 날짜계산 예시) --1) 분까지만 내버려두고 초는 버림 ==> 결과: 19/05/12 13:35:00 SELECT TRUNC(TO_DATE(‘2019-05-12 13:35:28’, ‘YYYY-MM-DD HH24:MI:SS’), ‘MI’) FROM DUAL; –2) 시까지만 내버려두고 분은 버림 ==> 결과: 19/05/12 13:00:00 SELECT TRUNC(TO_DATE(‘2019-05-12 13:35:28’, ‘YYYY-MM-DD HH24:MI:SS’), ‘HH24’) FROM DUAL; –3) 일까지만 내버려두고 시는 버림 ==> 결과: 19/05/12 00:00:00 SELECT TRUNC(TO_DATE(‘2019-05-12 13:35:28’, ‘YYYY-MM-DD HH24:MI:SS’), ‘DD’) FROM DUAL; –4) 월까지만 내버려두고 일은 버림 ==> 결과: 19/05/01 00:00:00 SELECT TRUNC(TO_DATE(‘2019-05-12 13:35:28’, ‘YYYY-MM-DD HH24:MI:SS’), ‘MM’) FROM DUAL; SELECT TRUNC(TO_DATE(‘2019-05-12 13:35:28’, ‘YYYY-MM-DD HH24:MI:SS’), ‘MON’) FROM DUAL; SELECT TRUNC(TO_DATE(‘2019-05-12 13:35:28’, ‘YYYY-MM-DD HH24:MI:SS’), ‘MONTH’) FROM DUAL; –5) 년까지만 내버려두고 월은 버림 ==> 결과: 19/01/01 00:00:00 SELECT TRUNC(TO_DATE(‘2019-05-12 13:35:28’, ‘YYYY-MM-DD HH24:MI:SS’), ‘Y’) FROM DUAL; SELECT TRUNC(TO_DATE(‘2019-05-12 13:35:28’, ‘YYYY-MM-DD HH24:MI:SS’), ‘YY’) FROM DUAL;

↓이 글이 유용했다면 아래 ♡버튼을 눌러주세요! ↓

반응형

So you have finished reading the 오라클 날짜 함수 topic article, if you find this article useful, please share it. Thank you very much. See more: 오라클 디데이, 오라클 날짜함수 요일, 오라클 sysdate 포맷, 오라클 날짜 포맷 시분초, 오라클 날짜 사이, 오라클 날짜 계산, 오라클 날짜 더하기, 오라클 날짜 비교

Leave a Comment