[MySQL] 날짜정보 자료형 + 다양한 날짜형식 가져오기
DATE
DATE 자료형은 오직 날짜정보만 담을 수 있으며, 시간정보는 담을 수가 없다.
날짜형식은 yyyy-dd-mm 을 갖고 있으며, 입력은 1000-01-01 부터 9999-12-31 까지의 날짜를 넣을 수 있다
DATETIME
DATETIME 자료형은 날짜 + 시간정보를 담을 수 있으며
형식은 yyyy-dd-mm hh:mm:ss 이며, 입력은 1000-01-01 00:00:00부터 9999-12-31 23:59:59 까지의 날짜를 넣을 수 있다
문자형 데이터 타입이며, 4byte 의 메모리를 차지한다,
무조건 사용자가 값을 입력해주어야 한다는 특징이있다.
TIMESTAMP
TIMESTAMP 자료형은 날짜 + 시간정보를 담을 수 있으며
형식은 yyyy-dd-mm hh:mm:ss 이며, 입력은 1970-01-01 00:00:00부터 2038-01-19 03:14:97 까지의 날짜를 넣을 수 있다.
이는 UTC(국제표준시) 를 기준으로 나온 자료형이기 때문에 입력범위가 위 같이 정해져있다.
숫자형 데이터 타입이며, 8byte 의 메모리를 차지한다,
DATETIME 과 다르게 사용자가 값을 주지 않아도, 자동으로 실행시간을 저장해준다는 특징 이있다.
DATE_FORMAT(now(), '형식')
MySQL 은 현재 날짜 정보를 담고있는 now() 함수를 제공한다. now() 는 기본적으로 [yyyy-dd-mm hh:mm:ss] 형식을 가지고 있다. 이러한 기본 날짜 형식말고 다른 형식을 사용하기 위해서는 DATE_FORMAT() 함수를 활용하면 된다.
현재날짜정보를 [ yyyy년 mm월 dd일 hh시 mm분 ss초] 형식으로 바꾸기 위해선 다음과 같이 사용한다.
CREATE TABLE tb_time(
currentTime timestamp
);
INSERT INTO tb_time(currentTime)
VALUES(now());
SELECT DATE_FORMAT(currentTime, %Y년 %m월 %d일 %H시 %i분 %s초) AS 기록시간
FROM tb_time;
format | 표시형식 | format | 표시형식 |
%Y | 연도(4자리 표시) | %H | 시간(00-23) |
%y | 연도(2자리 표시) | %h | 시간(00-12) |
%M | 월이름(영문) | %k | 시간(0-23) |
%m | 월(01-12) | %i | 분(00-59) |
%e | 월(1-12) | %s | 초(00-59) |
%d | 일(00-31) | ||
%e | 일(1-31) |