본문 바로가기

TOOL/MySQL

MySQL - date, time, datetime, timestamp

반응형
날짜 & 시간 처리하는 방법

 

 


date, time, datetime
date YYYY-MM-DD
time HH:MM:SS
datetime YYYY-MM-DD HH:MM:SS = isoformat

 

 

 

현재 시간과 관련된 함수 3개  curdate(), curtime(), now()

select curdate();
select curtime();
select now();

 

 

insert into people2
(name, birthdate, birthtime, birthdatetime)
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');
( 'Herry',curdate(),curtime(),now() );

select *
from people2;

 

 

date의 년만 가져올때

 

select name, year( birthdate )
from people2;

 

 

date의 월만 가져올때

select name, month( birthdate )
from people2;

 

 

date의 일만 가져올때

select name, day( birthdate )
from people2;

 

 

date의 요일을 알고싶을때

(1부터7까지 있는데 1은 sunday)

select name, dayofweek( birthdate )
from people2;

 

 

date의 요일을 문자열로 알고싶을때

select name, dayname( birthdate )
from people2;

 

 



select name, hour(birthtime)
from people2;

 

 

 

select name, minute(birthtime)
from people2;

 

 

 

select name, second(birthtime)
from people2;

 

 

2000-11-11 03:50 에 태어났습니다.

 

select date_format(birthdatetime, ' %Y-%m-%D %H:%i 에 태어났습니다.')
from people2;

 

 

birthdate 컬럼과 현재 시간의 차이를 가져오세요

select datediff( now(), birthdate )
from people2;

 

 

birthdate 에 36일 후는??

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

 

 

birthdate 에 28주 후는??

select birthdate + interval 28 week
from people2;

 

birthdatetime 에 16시간 전은??

 

select birthdatetime - interval 16 hour
from people2;

 

 

birthdatetime 에 16시간 후는??

 

select birthdatetime + interval 16 hour
from people2;

 

 

birthdatetime의 2년 3개월 후 현재시간의 5시간 전은?? 

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

 

 

 

 

 

 

 

timestamp

 

 

 

timestamp 데이터타입!

 

날짜를 숫자로 표현, 1970년 1월1일 자정을 0으로 시작, 지금까지 흘러온 초

 

 

insert into comments
(content)
values
('사과 진짜 맛있나요?'),
('진짜?');

update comments
set content = '맛없을거 같은데'
where id =3;

 

위 예시 이미지와 같이 update_at이라는 컬럼에

 

데이터가 수정되거나 update되는 마지막 순간을

 

기록하는걸 timestamp라고 한다.

 

이 설정은 Create Table할때 Columns 설정에서

 

defulte값을 통해 설정 할 수 있다.

 

 

 

위 이미지와 같이 Datatype은 TIMESTAMP로 설정

 

Defulte값은

 

creat_at은

 

Defulte 값에 CURRENT_TIMESTAMP를 적어주고

 

update_at은 CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP를 적어주게 되면

 

생성된 시간, 수정 & 업데이트된 시간이 표시되게 된다.

반응형

'TOOL > MySQL' 카테고리의 다른 글

MySQL - if( )  (0) 2022.05.17
MySQL - CASE  (0) 2022.05.16
MySQL - max, min, avg, sum 함수 사용법  (0) 2022.05.16
MySQL - count , group by  (0) 2022.05.16
MySQL - 문자열 검색에 유용한 Like 사용법  (0) 2022.05.16