본문 바로가기

프로그래밍 언어/MySQL

[MySQL] 시간 계산: datediff(), date_add(), interval + 시간

반응형
desc people2;

insert into people2
(name,birthdate, birthtime, birthdt)
values
('Padma','1988-11-11','10:07:35','1988-11-11 10:07:35'),
('Larry','1994-04-22','04:10:42','1994-04-22 04:10:42');

select * from people2;

select name, year(birthdate)
from people2;
해당 컬럼의 년도를 보여줌
select name, month(birthdate)
from people2;
해당 컬럼의 월를 보여줌
select name, day(birthdate)
from people2;
해당 컬럼의 날짜를 보여줌
select name, dayofweek(birthdate)
from people2;
해당 컬럼의 요일을 숫자 형식으로 보여줌.
ex) 1 -> Sunday, 6 -> Friday
select name, dayname(birthdate)
from people2;
해당 컬럼의 요일을 문자열로 보여줌
select name, birthtime
from people2;
(시,분,초 데이터를 가진 컬럼)
select name, hour(birthtime)
from people2;
해당 컬럼의 시(时)를 보여줌
select name, minute(birthtime)
from people2;
해당 컬럼의 분(分)를 보여줌
select name, second(birthtime)
from people2;
해당 컬럼의 초(秒)를 보여줌

 

현재시간과/특정시간의 시간 계산: datediff(), date_add(), interval + 시간

- (now - birthdate) 날짜로 알려준다.

- date_add(): 두번째 파라미터는 interval 

 

-- 2000-11-11 03:50 에 태어났습니다. 
select date_format( birthdt,'%Y-%m-%d %H:%i에 태어났습니다.' )
from people2;

-- birthdate 컬럼과 현재시간의 차이를 가져오세요.
-- diff different의 약자
select datediff(now(), birthdate)
from people2;
-- (now - birthdate) 날짜로 알려준다.

-- birthdate에 36일 후는?
-- 두번째 파라미터는 interval 
select date_add(birthdate, interval 36 day)
from people2;

select date_add(birthdate, interval 28 week)
from people2;

select birthdate + interval 28 week
from people2;

select birthdate - interval 28 week
from people2;

select birthdt + interval 16 hour
from people2;

select birthdt + interval 2 year + interval 3 month - interval 5 hour
from people2;

 

반응형