[MySQL] 날짜/시간 더하기, 빼기

2022. 6. 26. 04:03·SQL/개념

MySQL에서 datetime 형식에 바로 숫자로 날짜나 시간을 더하거나 뺄 수 없습니다.

(ex. 오늘 날짜에서 하루를 빼기 위해 today-1 하는 경우...)

아래의 함수를 이용하여 날짜/시간을 계산해야 합니다.  

 

1. DATE_ADD or DATE_SUB

 

더하기 

  • DATE_ADD(NOW(), INTERVAL 1 SECOND)
  • DATE_ADD(NOW(), INTERVAL 1 MINUTE)
  • DATE_ADD(NOW(), INTERVAL 1 HOUR)
  • DATE_ADD(NOW(), INTERVAL 1 DAY)
  • DATE_ADD(NOW(), INTERVAL 1 MONTH)
  • DATE_ADD(NOW(), INTERVAL 1 YEAR)
  • DATE_ADD(NOW(), INTERVAL -1 HOUR) 

빼기

  • DATE_SUB(NOW(), INTERVAL 1 SECOND)
  • DATE_SUB(NOW(), INTERVAL 1 MINUTE)
  • DATE_SUB(NOW(), INTERVAL 1 HOUR)
  • DATE_SUB(NOW(), INTERVAL 1 DAY)
  • DATE_SUB(NOW(), INTERVAL 1 MONTH)
  • DATE_SUB(NOW(), INTERVAL 1 YEAR)
  • DATE_SUB(NOW(), INTERVAL -1 HOUR)

 

2. DATEDIFF와 TIMESTAMPDIFF

DATEDIFF : 두 날짜의 차이(단위:日)

TIMESTAMPDIFF : 두 날짜의 차이 (단위: 연, 분기, 월, 주, 일, 시, 분, 초)

 

  • DATEDIFF (날짜1, 날짜2) 
    • 조건 절에서 DATEDIFF(today,yesterday) = 1 이런 식으로 자주 사용합니다. 
  • TIMESTAMPDIFF(단위, 날짜1, 날짜2) 
    • SECOND
    • MINUTE
    • HOUR
    • DAY
    • WEEK
    • MONTH
    • QUARTER : 분기 
    • YEAR

 

---- 기타 알아두면 좋겠지..? 하지만 크게 차이는 없을 듯 싶습니다. 

3. TO_DAYS / FROM_DAYS

: 주어진 날짜를 0000년 부터의 일수로 바꾸는 함수입니다. 

SELECT TO_DAYS('2022-06-25')
FROM books

=> 738696

 

해당 함수를 이용해서 어떻게 날짜를 더하고 빼라고? 라고 하신다면..

FROM_DAYS(n)를 추가로 사용하시면 됩니다. 

 

# 만약 오늘 날짜에서 3일을 더한 후가 몇월 며칠인지 알고싶다.. 하신다면 

SELECT FROM_DAYS(TO_DAYS('2022-06-25')+3)
FROM books

=> 2022-06-28로 계산되어 나옵니다.

혹은 날짜 비교에서도 사용이 가능합니다.

SELECT ...
FROM ...
WHERE TO_DAYS(TODAY) - TO_DAYS(YESTERDAY) = 1

 

 

'SQL > 개념' 카테고리의 다른 글

[MySQL] DATETIME 형식에서 특정 기간을 조회할 때  (0) 2022.07.01
[SQL 개념] Driving Table, Driven Table이란?  (0) 2022.06.29
[MySQL] SELF-JOIN  (0) 2022.06.10
[TIL] MySQL에서 위도-경도 거리 계산하기  (0) 2022.06.09
[MySQL] DELETE JOIN 번역  (0) 2022.05.28
'SQL/개념' 카테고리의 다른 글
  • [MySQL] DATETIME 형식에서 특정 기간을 조회할 때
  • [SQL 개념] Driving Table, Driven Table이란?
  • [MySQL] SELF-JOIN
  • [TIL] MySQL에서 위도-경도 거리 계산하기
소금깨
소금깨
  • 소금깨
    고군분투 인생살이
    소금깨
  • 전체
    오늘
    어제
    • 분류 전체보기 (328)
      • SQL (271)
        • 프로그래머스 (27)
        • LeetCode (198)
        • Hacker Rank (27)
        • Solve SQL (1)
        • 개념 (15)
      • 데이터 분석 (16)
        • 참고하며 공부하기 (14)
      • 기타 (15)
        • 통계 (14)
      • 오류 (6)
      • 인생살이 (0)
        • 리뷰 (0)
        • 일기 (0)
      • 中文 (0)
      • TABLEAU (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    직장인인강
    LeetCode
    HACKER_RANK
    프로그래머스
    파이썬을활용한시계열데이터분석
    solvesql
    group by
    easy
    MySQL
    직장인자기계발
    패스트캠퍼스
    시계열데이터분석
    Hard
    프리미엄
    패캠챌린지
    파이썬을활용한시계열데이터분석AtoZ올인원패키지Online
    SQL
    해커랭크
    medium
    패스트캠퍼스후기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
소금깨
[MySQL] 날짜/시간 더하기, 빼기
상단으로

티스토리툴바