[SQL] MySQL Date format 처리(date, date_format, 년월일시분초만 가져오는 함수)

박무성·2022년 9월 29일
0

SQL

목록 보기
2/2

개요

server application에서 date형식을 대개 파싱하지만 sql에서 query문을 통해 파싱하는 것도 가능하고 알아두어서 나쁠 것 없다고 생각했다.
sql에서 Date 형식을 가져올 때 어떻게, 어느 수준까지 파싱이 가능한가 알아보고 정리하고자 한다.

대개 이런 Format으로 db에 date 정보들이 저장되어있을 것이다.
이 것을 입맛에 맞게 query문을 통해 어떻게 파싱한 값을 가져올 수 있는지 알아보자

DATE()

  • datetime 자료형에서 yyyy-MM-dd 값만 가져오는 sql함수이다.
  • Syntax
select date(datetime) from table

datetime 자료형을 parameter로 하면 return 값으로 yyyy-MM-dd 형식의 데이터를 준다.

  • ex)


위 데이터를 yyyy-MM-dd 형식으로 가져오려한다면

select date(datetime) from table

구문 쿼리를 통해

형태의 값을 return 한다.

DATE_FORMAT()

  • date()함수보다 더 많은 variation으로 파싱할 수 있는 sql 함수이다.
  • Syntax
select date_format(datetime (param1),'%Y-%m-%d'(param2)) from table

param1에 datetime 자료형의 값을 넣고 param2에 원하는 형식의 자료형 값을 넣어주면 그 형태의 return 값을 준다.

date_format의 param2

두번째 parameter는 string 값으로 아래의 구분기호들의 조합을 통해 커스텀이 가능하다.

[예시]

  • DB의 저장 값
  • query1)
select date_format(datetime,'%y년 %m월 %d일')from table

result

  • query2)
select date_format(datetime,'%Y years %m month %D days')from table

result

HOUR,MONTH,DAY,HOUR,MINUTE,SECOND

datetime를 파라미터로 년,월,일,시,분,초를 각각 뽑아낼 수 있다.

  • HOUR(DATETIME) : 시만 return
  • MONTH(DATETIME) : 월만 return
  • DAY(DATETIME) : 일만 return
  • HOUR(DATETIME) : 시만 return
  • MINUTE(DATETIME) : 분만 return
  • SECOND(DATETIME) : 초만 return

만약

select hour(datetime) from table

구문은 수행하면
2013-01-01 11:00:00에서
2013만을 리턴한다.

profile
기본기를 중시하는 개발자, 박무성입니다

0개의 댓글