sql: extract() function

Zero·2022년 4월 6일
0

MySQL

목록 보기
1/5
post-thumbnail

MySQL에서 날짜형 함수를 공부하던 중,
아래와 같은 코드를 짜는 연습을 하고 있었다.

select extract(year_month from curdate());

>>202204

그런데 여기서 extract를 이용하여 월,일을 뽑고 싶어

select extract(month_day from curdate());

를 입력하였더니 Errorcode : 1064(syntax error)가 나왔다.

extract()함수를 이용하여 year, month, day는 다 입력되는데 'month_day'는 입력이 안되는 것이 이상해 검색해보았다.

그랬더니,

MICROSECOND
SECOND
MINUTE
HOUR, DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH

자세한 사항은 'w3schools.com/sql/func_mysql_extract.asp'에서 확인해보자

위의 parameter values만 들어갈 수 있다고 한다.

그렇다면 년도에서 월,일을 한번에 뽑아 낼 수 있는 방법은 무엇이 있을까?
정답은 바로 date_format() 함수를 이용하는 것이다.

select date_format(now(), "%m-%d");

>>04-06

date_format() 함수에도 사용가능한 parameter values가 따로 있다.
이 중 가장 많이 쓰이는 것 몇 개만 소개하겠다.

%Y : 년도 (4글자) ex) 2022
%y : 년도 (2글자) ex) 22
%M : 월 (full name) ex) January
%m : 월 (숫자) ex) 04
%D : 일 ex) 1st
%d : 일 ex) 01

자세한 사항은 'https://www.w3schools.com/sql/func_mysql_date_format.asp' 참조

마지막으로 micro_seconds가 궁금해 재미로 입력해본 값을 마지막으로 글을 마치겠다.

select extract(MICROSECOND from now());

>> 0
profile
코딩 일기

0개의 댓글