MySQL - 날짜/시간 데이터 타입 이용하기 (datetime, date, time, timestamp)

반응형

  • 예시에 사용 할 'people2' 테이블
  • 시계열 타입에 대해 포스팅 할 예정이므로 각 컬럼의 타입을 잘 확인해두자

 

시계열 타입 (datetime, date, time)

  • 시계열 타입 : 날짜와 시간을 단위별로 구분하여 이용하기 위해 시계열 타입의 형태로 사용
    • datetime : 연월일 시분초의 정보를 가지고 있는 데이터 타입, YYYY-MM-DD HH:MM:SS
    • date : 연월일의 정보를 가지고 있는 데이터 타입, YYYY-MM-DD
    • time : 시분초의 정보를 가지고 있는 데이터 타입, HH:MM:SS
    • timestamp : 시간을 숫자로 표기, 시간 계산을 위해 사용

 

현재 날짜/시간 확인하기 (curdate, curtime, now)

  • curdate() : 현재의 연월일 확인

 

  • curtime() : 현재의 시분초 확인

 

  • now() : 현재의 연월일 시분초 확인

 

  • 위의 함수를 이용하여 date, time, datetime 컬럼의 값을 추가해보기
  • insert into people2 (name, birthday, birthtime, birthdt) values ('Harry', curdate()curtime()now() );

 

  • 테이블 생성 옵션에서도 현재 시간 함수 이용 가능
    • now() : 데이터 추가시 현재 시간으로 저장
    • now() on update now() : 데이터 수정시 현재 시간으로 변경

 

날짜/시간의 단위별로 값 추출하기

  • 날짜/시간을 이용하여 특정 단위 별로 데이터를 추출 할 수 있음
    • year, month, day, dayofweek (1:일요일 ~7:토요일), hour, minute, second
  • 년도만 추출해보기
    • select name, year(birthday) from people2;

 

시계열 타입을 포맷팅하여 원하는 형태로 출력하기 (date_format)

  • date_format( 데이터, 표시할 포맷팅 형식) : 원하는 형식을 지정하여 해당 형식대로 포맷팅하여 출력
    • %Y(연), %m(월), %d(일), %H(시), %i(분), %S(초)
  • 포맷팅을 이용하여 datetime형식의 데이터를 포맷팅해보기
    • select date_format( birthdt, '%Y-%m-%d %H:%i:%S') from people2;

 

날짜/시간 계산하기 (date_add, datediff, interval)

date_add

  • date_add ( 날짜1, 날짜2 ) : 날짜1과 날짜2의 시간 합을 일(day)로 출력
  • 생년월일(birthday)로부터 36일 후 확인하기
    • select date_add(birthday, interval 36 day) from people2; 

 

datediff

  • datediff ( 날짜1, 날짜2 ) : 날짜1과 날짜2의 시간 차이를 일(day)로 출력
  • 생년월일(birthday)과 현재의 시간 차이를 구해보기
    • select datediff( now(), birthday ) from people2;

 

interval

  • interval : 사전적 의미로는 간격, 날짜/시간의 간격을 계산을 할 때 사용
  • 위의 date_add, datediff를 사용하지 않아도 -, + 기호를 이용해 계산 가능
  • 생년월일(birthday)로부터 36일 후 확인하기
    • select birthday + interval 36 day from people2'

반응형