본문 바로가기
GA 및 data/SQL

[SQL] 시간과 날짜 함수

by 오구송이 2024. 11. 21.

함수 설명

함수 설명
CURRENT_DATE, CURDATE() 현재 날짜 반환
CURRENT_TIME, CURTIME() 현재 시간 반환
CURRENT_TIMESTAMP, NOW() 현재 시간과 날짜 반환
DATE(칼럼명) 문자열에 따라 날짜 생성
TIME(칼럼명) 문자열에 따라 시간 생성
YEAR(컬럼명) 주어진 DATETIME값의 년도 반환
MONTHNAME(컬럼명) 주어진 DATETIME값의 월(영문) 반환
MONTH(컬럼명) 주어진 DATETIME값의 월 반환
WEEKDAY(컬럼명) 주어진 DATETIME값의 요일값 반환(월요일: 0)
DAYNAME(컬럼명) 주어진 DATETIME값의 요일명 반환
DAY(칼럼명) 주어진 DATETIME값의 날짜(일) 반환
HOUR(컬럼명) 주어진 DATETIME의 시 반환
MINUTE(컬럼명) 주어진 DATETIME의 분 반환
SECOND(컬럼명) 주어진 DATETIME의 초 반환
ADDDATE(칼럼명 INTERVAL 더할 값)
예시. SUBDATE(칼럼명 INTERVAL 5 YEAR)
시간/날짜 더하기
SUBDATE(칼럼명 INTERVAL 뺄 값)
예시. SUBDATE(칼럼명 INTERVAL 5 YEAR)
시간/날짜 빼기
DATE_DIFF(’비교할값’, ‘비교할값’) 두 시간/날짜 간 일수차
TIME_DIFF(’비교할값’, ‘비교할값’) 두 시간/날짜 간 시간차
LAST_DAY(칼럼명) 해당 칼럼의 마지막 날짜
DATE_FORMAT(칼럼명, 형식) 칼럼을 시간/날짜를 지정한 형식으로 반환
STR _ TO _ DATE(칼럼명, 형식) 칼럼을 형식으로 해석하여 시간/날짜 생성
%Y 년도 4자리
%y 년도 2자리
%M 월 영문
%m 월 숫자
%D 일 영문(1st, 2nd, 3rd...)
%d, %e 일 숫자 (01 ~ 31)
%T hh:mm:ss
%r hh:mm:ss AM/PM
%H, %k 시 (~23)
%h, %l 시 (~12)
%i
%S, %s
%p AM/PM

 

STR_TO_DATE vs. DATE_FORMAT

역할 STR_TO_DATE DATE_FORMAT
문자열(string) → 날짜(date) 변환 날짜(date) → 문자열(string) 변환
입력 데이터 문자열 날짜/시간
출력 데이터 날짜/시간 문자열
사용 목적 외부 데이터 정리, 변환 데이터 표현, 출력 형식 조정
예시 ‘20-11-2024’ → 2024-11-20’ 2024-11-20’ → ‘20-11-2024’

함수별 예시

  • SELECT CURDATE() ;
    • 의미: 현재 날짜를 출력해라 
  • SELECT CURTIME() ;
    • 의미: 현재 시간을 출력해라
  • SELECT NOW();
    • 의미: 현재 날짜와 시간을 출력해라
  • SELECT DATE('2021-6-1 01:02:03') ;
    • 의미: 2021-6-1 01:02:03에서 날짜만 출력해라
    • 결과: 2021-06-01 출력
  • SELECT TIME('2021-6-1 01:02:03');
    • 의미: 2021-6-1 01:02:03에서 시간만 출력해라
    • 결과: 01:02:03 각각 출력
  • SELECT HOUR(NOW()) ;
    • 의미: 현재의 시간을 출력해라
  • SELECT MINUTE(NOW());
    • 의미: 현재의 분을 출력해라
  • SELECT SECOND(NOW()) ;
    • 의미: 현재의 초를 출력해라
  • SELECT DATEDIFF(1996-10-10, 1996-10-12) ;
    • 의미: 1996-10-10과 1996-10-12간의 일수 차를 계산하여 출력해라
    • 결과: 2
  • SELECT TIMEDIFF('2021-06-21 15:20:35', '2021-06-21 16:34:41');
    • 의미: 15:20:35와 16:34:41 간의 시간 차를 계산하여 출력해라
    • 결과: -01:14:06
  • SELECT LAST_DAY(OrderDate) FROM Order ;
    • 의미: Order 테이블 내 OrderDate 칼럼 값 중에서 제일 마지막 달을 추출해라
  • SELECT DATE_FORMAT(NOW(), ‘%M %D, %Y %T’);
    • 의미: 지금 시각을 [월 일, 연 시간] 형식으로 추출해라
    • 결과: November 20th, 2024 06:53:18
728x90
반응형
LIST

'GA 및 data > SQL' 카테고리의 다른 글

[SQL] 그룹함수  (0) 2024.11.24
[SQL] IF, CASE, IFNULL 조회  (0) 2024.11.23
[SQL] 사칙연산 조회  (0) 2024.11.17
[SQL] 숫자 조회  (0) 2024.11.16
[SQL] 조회결과 순서 정렬 or 칼럼명 변경하여 데이터 조회  (2) 2024.11.10

댓글