Sparta_coding_club/SQL

[SQL문법] 날짜 형식 /DATEDIFF / DATE_ADD / DATE_FORMAT

데이터분석쇼니 2024. 1. 22. 10:39

 

날짜의 유형 

DATE

  • 시간 정보가 없는 날짜
  • YYYY-MM-DD

TIME

  • 날짜 정보가 없는 시간
  • HH:MM:SS

DATETIME

  • 날짜 및 시간 정보를 모두 나타냄
  • YYYY-MM-DD HH:MM:SS

TIMESTAMP

  • DATETIME과 유사하지만 범위가 차이가 있음

날짜 관련 기본 함수 

NOW( )

  • 현재 날짜와 시간

CURDATE( ) / CURRENT_DATE( )

  • 현재 날짜

CURTIME( ) / CURRENT_TIME( )

  • 현재 시간

DATE( )

  • DATETIME 식의 날짜 부분을 추천

TIME( )

  • DATETIME 식의 시간 부분을 추출

DATE_ADD( ) / DATE_SUB( )

  • 날짜에 간격을 더하거나 빼는 함수 

DATEDIFF( )

  • 두 날짜의 차이를 일 단위로 계산하는 함수 

날짜와 시간 가져오기

DATE( )

  • DATETIME 또는 TIMESTAMP 값에서 날짜 부분을 추출

YEAR( )  /  MONTH( )  /  DAY( )

  • 날짜에서 연도 / 월 / 일자를 추출 

DATE_FORMAT( )

  • 지정된 형식에 따라 날짜 형식을 지정 

DATE_FORMAT  (날짜 형식 바꾸기)

  • 날짜 포맷이란 특정 날짜를 사용자가 원하는 형태로 변경하는 것
  • 날짜 포맷을 하기 위해서 포맷 문자를 넣은 후 구분자나 띄어쓰기를 통해 표현
  • DATE_FORMAT(날짜, '%Y-%m-%dt%H:%i:%S')
%Y %y %m %d %H %i %S
4자리 년도
(1990, 1987)
2자리 년도
(90, 87)
2자리 월
(10, 12)
2자리 일
(26, 24)
24시간 
(10, 22, 23)
2자리 분 2자리 초
%M %b %c %e %I %W %a
영문 월(풀네임)
January
 August
영문 월(요약)
Jan
Aug
1자리 월
(1, 10)
1자리 일
(1, 19)
시간(12시간)
(10, 10, 11)
영문 요일(풀)
Wednesday
Friday
영문 요일(요약)
Wed
Fri

 

  • 날짜 영문으로 바꾸기
SELECT DATE_FORMAT('20000119', '%W, %e %M %Y, %r')
  → Wednesday, 19 January 2000, 12:00:00 AM

 

  • 날짜 바꾸기 예시
DATE_FORAMT('19901026', ' %y- %m- %d') 90-10-26
DATE_FORAMT('19901026', ' %y%m%d') 901026
DATE_FORAMT('19901026', ' %Y- %m- %d') 1990-10-26
DATE_FORAMT('19901026', ' %Y/ %m/ %d') 1990/10/26
DATE_FORAMT(my_birthday, '%Y.%m.%d %H:%i:%S' ) 1990.10.26 06:30:00
DATE_FORAMT(my_birthday, ' '%Y.%m.%d %H:%i:%S %W ' ) 1990.10.26 06:30:00 Thursday

 

 

날짜 차이 구하기

TIMESTAMPDIFF

  • DATEPART(기준) 단위로, STARTDATE 와 ENDDATE 간의 차이를 구해주는 함수 
SELECT TIMESTAMPDIFF( DATEPART, STARTDATE, ENDDATE)

SELECT TIMESTAMPDIFF(YEAR, '2020-09-30', '2021-09-30')
-- 1

SELECT TIMESTAMPDIFF(MONTH, '2020-09-30', '2021-09-30')
-- 12

SELECT TIMESTAMPDIFF(DAY, '2020-09-30', '2021-09-30')
-- 365

SELECT TIMESTAMPDIFF(HOUR, '2020-09-30 09:00', '2021-09-30 19:00')
-- 10

 

DATEDIFF

  • 날짜 1 - 날짜2의 일차이를 구하는 함수