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