DATE_FORMAT(DATE, 형식)을 통해 DATE의 형식을 바꿀 수 있습니다.
형식에는 %Y(4자리 연도), %y(2자리 연도), %m(월), %d(일), %H(24시간), %h(12시간), %i, %s가 있습니다.

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

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/59414

DATEDIFF(DATE1, DATE2)를 사용해서 풀 수 있었습니다. DATEDIFF는 Day의 차이를 반환하고, TIMESTAMPDIFF(단위, DATE1, DATE2)는 단위별로 차이를 구할 수 있습니다.

  • 단위
    SECOND : 초
    MINUTE : 분
    HOUR : 시
    DAY : 일
    WEEK : 주
    MONTH : 월
    QUARTER : 분기
    YEAR : 연
```sql
SELECT  
  A.ANIMAL_ID,  
  A.NAME  
FROM     
  ANIMAL_INS A,  
  ANIMAL_OUTS B  
WHERE  
  A.ANIMAL_ID = B.ANIMAL_ID  
ORDER BY  
  DATEDIFF(A.DATETIME, B.DATETIME)   
LIMIT   
  2
```

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/59411

CASE ~ WHEN ~ THEN ~ ELSE END 문을 써야했던 문제였습니다.

SELECT 
    ANIMAL_ID, 
    NAME, 
    CASE  
        WHEN SEX_UPON_INTAKE LIKE "%Neutered%" OR SEX_UPON_INTAKE LIKE "%Spayed%" 
            THEN "O" 
        ELSE 
            'X' 
    END AS "중성화" 
FROM     
    ANIMAL_INS

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/59409

 

코딩테스트 연습 - 중성화 여부 파악하기 | 프로그래머스

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

programmers.co.kr

 

IFNULL을 사용해야 하는 문제였습니다. IFNULL(A, B)은 A가 NULL이면 B를, 그렇지 않다면 A가 나옵니다.

SELECT 
    ANIMAL_TYPE, 
    IFNULL(NAME, "No name") AS NAME, 
    SEX_UPON_INTAKE 
FROM 
    ANIMAL_INS

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/59410

 

코딩테스트 연습 - NULL 처리하기 | 프로그래머스

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

programmers.co.kr

 

SELECT 
    ANIMAL_ID 
FROM 
    ANIMAL_INS 
WHERE   
    NAME IS NOT NULL

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/59407

 

코딩테스트 연습 - 이름이 있는 동물의 아이디 | 프로그래머스

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

programmers.co.kr

 

변수를 써야하는 문제였습니다. sql문에서 변수를 써서 많이 헷갈렸습니다.

SET @hour = -1; 

SELECT 
    @hour := @hour + 1 AS HOUR, 
    ( 
        SELECT 
            COUNT(DATETIME) 
        FROM  
            ANIMAL_OUTS B 
        WHERE 
            HOUR(DATETIME) = @hour 
    ) AS COUNT 
FROM    
    ANIMAL_OUTS A 
WHERE 
    @hour < 23

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/59413

 

코딩테스트 연습 - 입양 시각 구하기(2) | 프로그래머스

ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FA

programmers.co.kr

 

SELECT 
    HOUR(DATETIME) AS HOUR, 
    COUNT(DATETIME) AS COUNT 
FROM 
    ANIMAL_OUTS 
WHERE 
    HOUR(DATETIME) >= 9 
AND 
    HOUR(DATETIME) <= 19 
GROUP BY 
    HOUR

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/59412

 

코딩테스트 연습 - 입양 시각 구하기(1) | 프로그래머스

ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FA

programmers.co.kr

 

+ Recent posts