SQL
프로그래머스 SQL DATETIME에서 DATE로 형 변환
KYBee
2022. 3. 1. 13:03
Data 구조
ANIMAL_INS : 동물 보호소에 들어온 동물의 정보를 담은 테이블
| NAME | TYPE | NULLABLE |
| ANIMAL_ID | VARCHAR(N) | FALSE |
| ANIMAL_TYPE | VARCHAR(N) | FALSE |
| DATETIME | DATETIME | FALSE |
| INTAKE_CONDITION | VARCHAR(N) | FALSE |
| NAME | VARCHAR(N) | TRUE |
| SEX_UPON_INTAKE | VARCHAR(N) | FALSE |
문제
ANIMAL_INS 테이블에 등록된 모든 레코드에 대해, 각 동물의 아이디와 이름, 들어온 날짜를 조회하는 SQL문을 작성해주세요. 이때 모든 결과는 아이디 순으로 조회해야 합니다.
예시
Input:
| ANIMAL_ID | ANIMAL_TYPE | DATETIME | INTAKE_CONDITION | NAME | SEX_UPON_INTAKE |
| A349996 | Cat | 2018-01-22 14:32:00 | Normal | Sugar | Neutered Male |
| A350276 | Cat | 2017-08-13 13:50:00 | Normal | Jewel | Spayed Female |
| A350375 | Cat | 2017-03-06 15:01:00 | Normal | Meo | Neutered Male |
| A352555 | Dog | 2014-08-08 04:20:00 | Normal | Harley | Spayed Female |
| A352713 | Cat | 2017-04-13 16:29:00 | Normal | Gia | Spayed Female |
Output:
| ANIMAL_ID | NAME | 날짜 |
| A349996 | Sugar | 2018-01-22 |
| A350276 | Jewel | 2017-08-13 |
| A350375 | Meo | 2017-03-06 |
| A352555 | Harley | 2014-08-08 |
| A352713 | Gia | 2017-04-13 |
정답:
DATE_FORMAT을 사용하는 문제입니다. DATE_FORMAT에 DATETIME 타입 컬럼을 넘겨준 이후에 포맷을 지정해주면 원하는 형식으로 변환이 가능합니다.
| 구분 기호 | 역할 | 구분 기호 | 역할 |
| %Y | 4 자리 년도 | %m | 숫자 월(두자리) |
| %y | 2 자리 년도 | %c | 숫자 월(한자리) |
| %M | 긴 월(영문) | %d | 일자 (두자리) |
| %b | 짧은 월(영문) | %e | 일자 (한자리) |
| %W | 긴 요일 이름(영문) | %I | 시간 (12시간) |
| %a | 짧은 요일 이름(영문) | %H | 시간 (24시간) |
| %i | 분 | %r | hh:mm:ss AM, PM |
| %T | hh:mm:ss | %S | 초 |
우리는 2018-01-22 과 같은 날짜 형식을 사용할 것이므로 %Y-%m-%d가 된다.
SELECT ANIMAL_ID, NAME,
DATE_FORMAT(DATETIME, '%Y-%m-%d') AS '날짜'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;