240704(+29) | MYSQL의 다양한 시간 함수

청솔·2024년 7월 5일

SQL

목록 보기
13/23
post-thumbnail

1. 단순 날짜 함수

select curdate(), #현재 날짜
	   curtime(), #현재 시간
	   now(), #현재 날짜와 시간
	   date('2023-07-04 19:50:26'), #날짜만 
	   time('2023-07-04 19:50:26'), #시간만
	   year('2023-07-04 19:50:26'), #연도
	   month('2023-07-04 19:50:26'), #월
	   day('2023-07-04 19:50:26'), #요일 (1부터 월요일)
	   hour('2023-07-04 19:50:26'), #시
	   minute('2023-07-04 19:50:26'), #분
	   second('2023-07-04 19:50:26') #초

						*UNION ALL을 사용하여 피벗테이블 형태로 결과 출력

DATE, TIME, DATETIME 데이터 타입은 숫자처럼 보일 수 있지만 실제로는 날짜와 시간을 다루기 위해 특별히 설계된 데이터 타입이다. 날짜와 시간 연산을 위한 특별한 함수와 연산자가 제공된다.

2. 다양한 날짜 연산 함수

빼기

- SUBDATE(): 날짜에서 일정 기간을 뺍니다.

#SUBDATE(date, days) 또는 SUBDATE(date, INTERVAL expr unit)
SELECT SUBDATE('2023-07-03', 10) AS result;
SELECT SUBDATE('2024-07-05', INTERVAL 3 MONTH) AS result;

- DATE_SUB(): 날짜에서 interval을 사용하여 일정 기간을 뺍니다.

DATE_SUB(date, INTERVAL expr unit)
SELECT DATE_SUB('2024-07-05', INTERVAL 5 MONTH) AS new_date; 
#day,week,month,year
#microsecond,second,minute,hour

두 함수 모두 동일한 결과를 반환하며, 다양한 인터벌(interval)을 사용하여 일, 주, 월, 연도, 시간, 분, 초 단위로 날짜를 조정할 수 있다.
subdate()를 date_sub()의 별칭으로 본며 MySQL 공식 문서에서도 SUBDATE()와 DATE_SUB()가 동일한 결과를 제공한다고 명시하고 있다. 사용자의 편의를 위해 2가지 함수를 제공한다고 한다.

팀원 분들 정리

1. 도운님

  • DATE_FORMAT(DATE OR DATETIME, FORMAT): 날짜를 지정된 형식으로 포맷합니다.
  • STR_TO_DATE(STRING, FORMAT): 문자열을 날짜로 변환합니다.

2. 서희님

  • DATEDIFF(): 두 날짜 간의 차이를 일 단위로 반환합니다.
  • TIMESTAMPDIFF(): 두 TIMESTAMP 간의 차이를 지정된 단위로 반환합니다.

3. 재원님

  • ADDDATE(): 날짜에 일정 기간을 더합니다.
  • DATE_ADD(): 날짜에 일정 기간을 더합니다.
profile
모든 사람이 쉽게 이해할 수 있는 데이터 분석을 지향하는 분석가가 되고 싶습니다. "데이터 분석은 사람을 설득 시킬 수단이다. "

0개의 댓글