[SQL 쿡북] Chapter 9 : 날짜 조작 기법 (MYSQL)
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