[sql문법] date_format

신창호·2023년 3월 7일
0

mysql문법

목록 보기
2/4

연습문제

DateTime

  • 날짜형 데이터 타입중에, 모든것을 다 표현하는 타입 datetime이 있다
  • 아래 두가지 타입을 합쳐서 표현한다고 보면 쉽다.
    • 년월일을 나타내는 Date
    • 시분초를 나타내는 time

DB에서 필요한 값

  • DB에는 datetime 타입으로 저장되어 있는 경우가 많지만, 실제 필요로 인해 사용하게 될 경우에는 날짜만 필요한 경우도 다수 있다.

  • 그럼 날짜만 출력하는 방법이 없을까?

date_format(날짜(컬럼), 형식)

  • mysql이 제공해주는 날짜를 지정한 형식으로 출력하는 함수이다.
  • 사용 방식은 간단하다.
    • 바꾸고자 하는 컬럼을 첫번째 인자에 입력하고

    • 원하는 형식을 문자열로 두번째 인자에 입력해준다.

      SELECT DATE_FORMAT(NOW(),'%Y %M %d') FROM [테이블명];
      SELECT DATE_FORMAT([칼럼명],'%Y %M %d') FROM [테이블명];
  • 그럼 원하는 형식으로 출력된다.
  • 다만, 형식을 입력하는 방법엔 기호 규칙이 있다.
  • 여기서는 주요 년/월/일/시/분/초만 다루고, 다른 기호는 공식문서를 참고하자.
    • 공식문서
    • 문자열로 적어야하고, 대소문자를 구분하기때문에 주의하자!
 구분기호역할 구분기호역할구분기호
%Y4자리 년도%y2자리 년도
%M월 영어 풀네임%m01~ 12 (월)%b월 짧은 영어
%D1st, 2nd, 3rd,3th, 4th%d00~ 31 (일)%e0~31 (일)
%H00~23 (시)%h01~12(시)
%i00~59 (분)
%S00~59 (초)
%Thh:mm:ss
  • 만약 내가 원하는 데이터가 2022-01-01 과 같은 날짜 형식이라면, 아래와 같이 표현가능하다.
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d') // 2023-03-04

SELECT APNT_NO, PT_NAME, a.PT_NO, a.MCDP_CD , DR_NAME, APNT_YMD FROM APPOINTMENT a
JOIN PATIENT p ON a.PT_NO = p.PT_NO
JOIN DOCTOR d ON a.MDDR_ID = d.DR_ID	 
WHERE DATE_FORMAT(APNT_YMD, '%Y-%m-%d') = DATE_FORMAT('2022-4-13', '%Y-%m-%d')
AND a.MCDP_CD	='CS'
AND APNT_CNCL_YN = 'N'
ORDER BY APNT_YMD
profile
한단계씩 올라가는 개발자

0개의 댓글