데이터 분석/초보자를 위한 SQL 200제

SQL에서 날짜 조건으로 검색, 날짜 형식 변경하기

예스리코드 2023. 1. 25. 14:27

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절에 조건을 넣어 검색해보자!

문제 없이 출력되는 것을 알 수 있다.