SQL이든 파이썬이든 날짜형식은 참 편리하면서도 복잡한 기능인 것 같다..
SQL에서 날짜형식을 활용해 어떻게 조건 검색을 하는지, 날짜 형식을 변경하는 방식은 무엇인지 알아보자!
기본 날짜 형식 확인하는 법
# 날짜 형식 확인하는 법
SELECT *
FROM NLS_SESSION_PARAMETERS
WHERE PARAMETER = 'NLS_DATE_FORMAT'
위에 방식으로 우선 해당 세션의 날짜 형식을 파악해보자
내가 현재 사용하고 있는 세션의 날짜 형식은 DD-MON-RR 였다.(예를 들어 17/FEB/21)
아무래도 문자와 날짜가 혼용되어서 편한 형식은 아니다.
날짜 조건 검색하기
# DD-MON-RR -> 해당 형식으로 WHERE 절 사용해야 함
SELECT ENAME, HIREDATE
FROM EMP
WHERE HIREDATE = '17-NOV-81'
현재 날짜 형식이 맞게만 HIREDATE에 조건 검색이 가능하다.
만약에 '17/11/81'을 WHERE 절에 넣으면 오류가 난다.
그렇다면 좀 더 편한 형식으로 바꿔보자
날짜 형식 변경하기
ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/RR'; # 세미콜론 잊지말아주세요
SELECT ENAME, HIREDATE
FROM EMP
WHERE HIREDATE = '17/11/81';
사실 하나만 실행할 땐 세미콜론 떼고 했는데,, DDL과 DML을 같이 써서 그런지 첫번째 문장 앞에 세미콜론이 붙어야됐다.
쨋든 날짜형식을 DD/MM/RR로 바꾸니 해당 형식도 HIREDATE에 직접 날짜를 입력하면 조건검색이 가능하다.
아무 날짜 형식으로 검색하기
TO_DATE(데이터, 원하는 형식)
# 원하는 형식으로 바로 찾고 싶다면?
SELECT ENAME, HIREDATE
FROM EMP
WHERE HIREDATE = TO_DATE('81/11/17','RR/MM/DD')
바뀐 날짜 형식은 해당 세션에서만 유지된다.
그렇기에 어떤 형식이든간에 검색을 바로 하는 방법이 가장 유용할 것이다.
이때, TO_DATE를 사용해 WHERE절에 조건을 넣어 검색해보자!
문제 없이 출력되는 것을 알 수 있다.
'데이터 분석 > 초보자를 위한 SQL 200제' 카테고리의 다른 글
| NULL값이 포함된 숫자형 데이터 다루기 (0) | 2023.01.25 |
|---|---|
| 초보자를 위한 SQL 200제 초급(ROUND, TRUNC, MOD, FLOOR, NEXT_DAY, TO_CHAR) (0) | 2023.01.18 |
| 초보자를 위한 SQL 200제 초급(SUBSTR, INSTR, REPLACE, PAD, TRIM) (0) | 2023.01.17 |
| 간단하게 SQL 쿼리 연습하기( SQL Fiddle vs DB fiddle vs LiveSQL) (0) | 2023.01.17 |