Study/Book

[SQL 쿡북] Chapter 9 : 날짜 조작 기법 (MYSQL)

HongUniverse 2023. 1. 13. 16:10
반응형

9.1 연도의 윤년 여부 결정하기 

LAST_DAY함수를 이용하여 2월의 마지막 날을 찾으려고 한다. 

select day(
	   last_day(
       date_add(
       date_add(
       date_add(current_date,
				interval -dayofyear(current_date) day),
                interval 1 day),
                interval 1 month))) dy
	from t1

DATE_ADD(기준 날짜, INTERVAL)

 

 

[MySQL] 시간 더하기, 빼기 (DATE_ADD, DATE_SUB 함수)

▶MySQL 시간 더하기, 빼기 (DATE_ADD, DATE_SUB 함수) ▶설명 MySQL에서 특정 시간을 기준으로 더하거나, 빼야 하는 경우가 있습니다.이 때 사용하는 함수가 DATE_ADD와 DATE_SUB입니다.DATE_ADD는 기준 날짜에

extbrain.tistory.com

[해설]

먼저 date_add( date_add( current_date, interval -dayofyear(current_date) day), interval 1 day)  는 현재 날짜에서 해당 연도의 일수만큼 뺀 후, 1일을 더했으므로 올 해의 첫번째 날이 나오게 된다. 후에 다시 date_add하여 1 month를 더해줬으므로 2월이 되었고, last_day 함수를 사용하여 올해 2월의 마지막 날을 찾게 되는 것이다. 

 

9.2 연도의 날짜 수 알아내기 

현재 연도의 일수를 계산하려고 한다. 

select datediff((curr_year + interval 1 year), curr_year)
	from (
select adddate(current_date, -dayofyear(current_date)+1) curr_year
	from t1
    ) x

[해설] 

* ADDDATE 는 DATE_ADD 의 동의어로 지정한 날짜에 EXPR 를 더한 값을 반환하는 역할을 합니다.

adddate(current_date, -dayofyear(current_date)+1) curr_year 은 현재 날짜에서 올해의 현재날짜만큼 빼고 하루 더했으므로 올해희 첫날이 되고, 최종적으로 올해의 첫날과, 올해츼 첫날+ 1년 의 날짜 차이를 구했으므로 한해의 일 수가 나오게 된다. 

 

MYSQL - ADDDATE, DATE_ADD 함수

무료로 사용할 수 있는 CMS 형 PHP 버드 패널, 테마, FTP 외 라이브러리 제공

www.habonyphp.com

 

9.3 날짜에서 시간 단위 추출하기 

현재 날짜를 연, 월, 일, 시, 분, 초 로 나누고 그 결과를 수자로 반환하려고 한다. 

select date_format(current_timestamp, '%k') hr,
	   date_format(current_timestamp, '%i') min,
       date_format(current_timestamp, '%s') sec,
       date_format(current_timestamp, '%d') dy,
       date_format(current_timestamp, '%m') mon,
       date_format(current_timestamp, '%Y') yr
	from t1

 

[mysql] DATE_FORMAT - 날짜 형식 설정

1. DATE_FORMAT - 역할DATE_FORMAT(날짜 , 형식) : 날짜를 지정한 형식으로 출력 2. DATE_FORMAT - 구분기호 구분기호역할구분기호역할 %Y 4자리 년도 %m 숫자 월 ( 두자리 ) %y 2자리 년도 %c 숫자 월(한자리는 한

devjhs.tistory.com

 

9.4 월의 첫 번째 일과 마지막 일 알아내기 

select date_add(current_date,
					interval -day(current_date)+1 day) firstday,
		last_day(current_date) lastday
	from t1

 

반응형