Database/MySQL

[MySQL] 날짜와 시간관련 중요한 함수들

Mei99 2024. 5. 16. 10:21

 

MySQL 날짜와 시간관련 함수들

아래 데이터를 이용하여 시간관련 함수 사용법을 알아보자.

 

 

 

- day( )

: 날짜만 가져오기

 

 

 

- month( ) / year( )

: 월 / 년도 가져오기

 

 

 

- dayname() / dayofweek()

: 요일 이름 / 요일 번호(1=Sunday, 2=Monday, ..., 7=Saturday)

dayofweek()를 사용하면 전 세계 어느 곳이든, 모든 핸드폰 사양에 적용될 수 있다.

 

 

 

 

- hour() / minute() / second()

: 시 / 분 / 초

 

 

 

DB에 저장되는 시간데이터 디폴트는 ISO 표준형식 이다.
그래서 사람이 보기 편한 문자열로 바꾸는 방법이 있다.

 

 

- date_format()

: 날짜와 시간 데이터를 원하는 형식으로 출력

 

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

=> 'birthdt' 컬럼의 날짜를 ' YYYY년 mm월 dd일, HH시 ii분 입니다.' 로 출력

date_format(now(), '%Y-%m-%d %H:%i:%s')

=> 현재 날짜와 시간을 'YYYY-MM-DD HH:mm:ss' 형식으로 출력

 

date_format() 함수 주요 형식 문자

%Y: 4자리 년도
%y: 2자리 년도
%M: 월 이름(January, February, ...)
%m: 월 숫자(01, 02, ...)
%D: 일 (1st, 2nd, ...)
%d: 일 숫자(01, 02, ...)
%H: 24시간 형식의 시간
%h: 12시간 형식의 시간
%i: 분
%s: 초
%p: AM/PM 표시

 

 

 

그런데, 서버에는 로컬타임(핸드폰시간)이 아닌 글로벌 표준시간(UTC)으로 반영되기 때문에, 이와 같은 방식은 잘 사용하지 않는다.

(포스팅한 글이 서버에 반영되고 DB에 저장될 때, UTC 시간으로 저장된다)

 

 

 

 

- now()

: 현재 UTC 시간 구하는 함수

 

- curdate()

: 현재 UTC 시간의 년/월/일 구하는 함수

 

- curtime()

: 현재 UTC 시간의 시/분/초 구하는 함수

 

 

 

datediff() 

: 시간 차이를 구하는 함수

diff = difference

 

 

 

- date_add( 기준날짜,  interval value 단위)

: 기준 날짜에 value 단위 만큼 더하는 함수

 

- date_sub( 기준날짜,  interval value 단위)

: 기준 날짜에 value 단위 만큼 빼는 함수

 

단위 : year, month, day, hour, minute, second 등

 

 

date_add() / date_sub() 함수 대신에 + / - 기호를 사용해도 된다.