패키지
TO_CHAR, TO_DATE 쿼리문 본문
날짜 데이터 비교시 형식 주의.
TO_CHAR(날짜데이터, 형식)
: 날짜를 서식에 맞춰서 문자열로 변환
TO_CHAR(날짜, '서식') -> 서식에 맞는 문자열 반환
--날짜 데이터를 원본 그대로 출력
SELECT hire_date FROM employees; --03/06/17 , 년/월/일
SELECT TO_CHAR(hire_date, 'YYYY-MM-DD') AS hire_date FROM employees; --2003-06-17 , 년도-월-일
SELECT TO_CHAR(hire_date, 'YYYY') AS hire_date FROM employees; --2003 , 년도
SELECT TO_CHAR(hire_date, 'MM') AS hire_date FROM employees; --06 , 월
SELECT TO_CHAR(hire_date, 'DD') AS hire_date FROM employees; --17 , 일
-주민번호 기준으로 5월달생만 출력.
주민번호의 생년월일 부분만을 추출->날짜형 자료로 변환->월 부분만 추출.
SELECT * FROM insa WHERE TO_CHAR(TO_DATE(SUBSTR(ssn, 1, 6)), 'MM') = 5;
***SYSDATE
시스템에 저장된 현재 날짜를 반환하는 함수로서, 초 단위까지 반환한다. 결과를 시, 분, 초 단위까지 출력하기 위해서는 TO_CHAR 함수를 사용하여 날짜 형식을 변환해야 한다.
SELECT SYSDATE FROM dual; --15/03/18
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM dual; --
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM dual; --
SELECT TO_CHAR(SYSDATE, 'HH24:MI') FROM dual; --12:41
SELECT TO_CHAR(hire_date, 'YYYY-MM-DD HH24:MI:SS') FROM employees;
--> 기존 데이터는 시분초가 모두 00으로 세팅되어 있다.
***TO_DATE(char, 서식)
: 문자를 날짜로 변환
2012년 1월 1일부터 오늘 날짜까지의 일 수 출력.
SELECT SYSDATE - TO_DATE('20120101') AS nalsu FROM dual;
-->12.5896875
- 남자 중에서 나이를 기준으로 오름차순 정렬해서 출력.
SELECT * FROM insa
WHERE SUBSTR(ssn, 8, 1) IN ('1', '3')
ORDER BY TO_DATE(SUBSTR(ssn, 1, 6)) ASC;
'DataBase' 카테고리의 다른 글
MySql, DATETIME과 TIMESTAMP의 차이점 (0) | 2017.12.19 |
---|---|
MySql 기존 컬럼에 자동증가 속성 추가 (0) | 2017.12.15 |
관계형 데이터베이스 모델(Relational Database, RDB) (0) | 2015.07.29 |
개체-관계 모델의 구성요소 (0) | 2015.07.29 |
DB 데이터 가져오기 - Select 문 (Like 연산자) (0) | 2015.07.22 |