프로그래머스 SQL - DATE_FORMAT

yeyeyeyeye·2025년 2월 24일

프로그래머스 문제
https://school.programmers.co.kr/learn/courses/30/lessons/59414

ANIMAL_INS 테이블에 등록된 모든 레코드에 대해, 각 동물의 아이디와 이름, 들어온 날짜_1를 조회하는 SQL문을 작성해주세요. 이때 결과는 아이디 순으로 조회해야 합니다.

날짜_1: 시각(시-분-초)을 제외한 날짜(년-월-일)만 보여주세요.

내 풀이

SELECT animal_id,
name,
substr(datetime,1,10)
FROM animal_ins
ORDER BY animal_id

나는 여태까지 substr 사용해서 필요한 날짜를 추출해왔다.

근데 다른 풀이들 보면 보통 DATE_FORMAT을 많이 사용하는 것 같아서 숙지해두려고 한다.

[기본문법]
DATE_FORMAT(date, format)
date: 형식을 지정할 날짜 또는 시간 값
format: 날짜와 시간을 지정할 형식 문자열, 형식 문자열은 %기호와 함께 다양한 포맷 지정자를 사용한다.

[자주 사용하는 포맷]
예시(2025-02-06 14:30:45 기준)
%Y : 4자리 연도 ex.2025
%y : 2자리 연도 ex.25
%m : 2자리 월(01~12) ex.02
%c : 숫자 월 ex.2
%d : 2자리 일(01~31) ex.06
%H : 24시간제 시(00-23) ex.14
%h or %I : 12시간제 시(01~12) ex.02
%i : 분(00~59) ex. 30
%s : ch(00~59) ex. 45
%p : AM/PM ex.PM
%W : 요일 이름 ex. Thursday
%a : 요일 약자 ex. Thu
%M : 월 이름 ex. February
%b : 월 약자 ex. Feb


만약, 날짜 비교 시 활용하고 싶다면 ?

날짜를 문자열로 변환 후 비교하거나 조건문에 사용할 수 있다.

SELECT *
FROM orders
WHERE DATE_FORMAT(order_date, '%Y-%m') = '2025-02';

참고 블로그
https://blog.naver.com/happyday_1_1/223751589792

profile
안녕하세요? 데이터분석가 되고 싶어요.

0개의 댓글