SQL - 시간 데이터 포맷 바꾸기, 특정 시간 이전 데이터 추출하기

1. 연습문제

 

코딩테스트 연습 - 조건에 부합하는 중고거래 댓글 조회하기 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

2. 풀이

 

DATE_FORMAT(CREATED_DATE, (format))으로 DATE 타입 변수를 원하는 (format)으로 바꿀 수 있다.

 

https://velog.io/@donghoim/MySQL-DATETIME-%EC%9B%90%ED%95%98%EB%8A%94-%EC%9C%A0%ED%98%95%EC%9C%BC%EB%A1%9C-%EB%B3%80%EA%B2%BD-YYMMDD

 

그냥 출력하면 'YYYY-MM-DD HH:mm:ss'형태로 출력하지만...

 

 

 

DATE_FORMAT(CREATED_DATE, '%Y-%m-%d')로 바꾸면 '2022-10-02'처럼 시간,분,초를 뺄 수 있다.

 

 

 

또한 10월 데이터만 추출하라고 하는데..

 

WHERE CREATED_DATE < '2022-11-01';처럼 시간 비교가 가능하다.

 

이렇게 쓰면 2022-11-01보다 시간이 작은 데이터만 추출해준다.

 

SELECT TITLE, A.BOARD_ID, REPLY_ID, B.WRITER_ID, B.CONTENTS, DATE_FORMAT(B.CREATED_DATE, '%Y-%m-%d') as CREATED_DATE FROM USED_GOODS_BOARD A, USED_GOODS_REPLY B
WHERE A.BOARD_ID = B.BOARD_ID AND A.CREATED_DATE < '2022-11-01'
ORDER BY B.CREATED_DATE,TITLE;

 

 

추가로 이 문제 주의점은 '게시글 제목, 게시글 작성일, 게시글 내용', '댓글 제목, 댓글 작성일, 댓글 내용'등등 뭘 출력하라는지 정확히 파악해야한다.

 

그에 따라 A.CONTENTS인지 B.CONTENTS인지... A.CREATED_DATE인지 B.CREATED_DATE인지..

 

'게시글 작성일'이 2022년 10월인 데이터를 출력하시오.. 하면 게시글 데이터는 A 테이블에 있으니 A.CREATED_DATE라고 해야함

TAGS.

Comments