DATABASE/MySQL Workbench

MySQL Workbench : 날짜 데이터를 저장하는 데이터타입 (DATE, TIME, DATETIME)

신강희 2024. 5. 16. 10:58
반응형

< MySQL 날짜 데이터를 저장하는 데이터타입 (DATE, TIME, DATETIME) >

- 날짜 데이터 학습을 위해 새로운 테이블 생성

Datatype이 중요함

 

# yhdb로 db 사용어 입력하고 테이블에 새로운 데이터 입력

use yhdb;

insert into people
(name, birthdate, birthtime, birthdt)
values
( 'Mike', '1990-11-11', '10:07:35', '1990-11-11 10:07:35'),
( 'Larry', '1980-12-25', '04:10:42', '1980-12-25 04:10:42');

 

# 데이터 타입이 DATE 일때만 사용가능한 함수

-- 년월일에서 날짜만 가져올때 day() 함수
select name, day(birthdate)
from people;

 

-- 월정보만 가져올때 month() 함수
select name, month(birthdate)
from people;

 

-- 년도만 가져올때 year() 함수
select name, year(birthdate)
from people;

 

-- 요일을 문자열로 가져올떄 day name() 함수
select name, dayname(birthdate)
from people;

 

-- 요일을 숫자로 가져올때 day of week() 함수
select name, dayofweek(birthdate)
from people;

 

# 데이터 타입이 TIME 일때만 사용가능한 함수

-- 데이터 타입이 TIME 일때만 사용가능한 함수
-- 시간도 각각 처리하는 함수가 있다.
select name, hour(birthtime), minute(birthtime), second(birthtime)
from people;

 

# 즉, 데이터 타입DATETIME 일경우엔 모든 함수 사용 가능

-- 즉, 데이터 타입이 DATETIME 일때는 date와 time 형식을 모두 가지고 있기 때문에 위에 두가지 형식의 함수를 모두 사용 가능
select name, year(birthdt), hour(birthdt)
from people;

 

# 문자열로 보고싶을때

-- db에 저장된 시간형식의 데이터를,
-- 사람이 보기 편한 문자열로 바꾸는 방법

-- 1990-11-11 10:07:35 => 1990년 11월 11일, 10시 7분 입니다.
-- date_format() 함수 but, 실무에서 많이 사용하진 않는다.
-- 서비스는 보통 글로벌로 타겟을 하기 때문에, 각나라별로 시차가 있다보니 UTC(글로벌 표준시)를 기준으로 시간을 저장하는게 보편적.

select name, date_format( birthdt , '%Y년 %m월 %d일, %H시 %i분 입니다.' )
from people;

 

다음 게시글로 계속~!

728x90
반응형