프로그래머스/SQL

[Lv.2] DATETIME에서 DATE로 형 변환

Park SH 2025. 1. 31. 13:14

https://school.programmers.co.kr/learn/courses/30/lessons/59414

 

사용 언어

MySQL

 

테이블 설명

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

 

요구사항

1. 아이디, 이름, 들어온 날짜 조회

2. 날짜에서 시각(시분초)을 제외한 날짜(년월일)만 조회

2. 아이디 순으로 정렬

 

풀이

1. SELECT로 아이디, 이름, 들어온 날짜

2. 날짜 컬럼에서 형변환

3. ORDER BY로 아이디 정렬 (오름차순(ASC)는 생략가능)

 

SELECT ANIMAL_ID
    , NAME
    , DATE_FORMAT(DATETIME, '%Y-%m-%d')
FROM ANIMAL_INS
;

이 코드로 정답처리가 되었지만 사실상 DATE타입으로 변한것이 아니라 지정된 포맷으로 문자타입형태로 출력된 것이다.

DATETIME타입을 DATE타입로 변환하려면 DATE(DATETIME)을 사용해야한다.


사용 언어

PostgreSQL

SELECT ANIMAL_ID
    , NAME
    , TO_CHAR(DATETIME, 'YYYY-MM-DD')
FROM ANIMAL_INS
;

MySQL의 결과가 같게 시분초를 제외하고 년월일만 문자타입으로 나타낼 경우 위와 같다

만약 PostgreSQL에서 TIMESTAMP타입를 DATE타입으로 바꿀경우에는 아래와 같이 사용한다.

SELECT ANIMAL_ID, 
       NAME, 
       DATETIME::DATE
FROM ANIMAL_INS
;