본문 바로가기
[스파르타코딩클럽]데이터분석 과정/SQL

[SQL] 날짜 더하기, 빼기, 날짜 간 차이

by doo_ 2023. 12. 30.

[Oracle]

- 날짜 간 차이 구하기

> 따로 함수가 없어서 (날짜1 - 날짜2) 하면 된다고 한다.

 

- 날짜 더하기 & 빼기

> 날짜 add_month()를 쓰는 법도 있지만

> (DATE + INTERVAL N 날짜 단위)를 통해 가능하다. (이 방법이 훨씬 편리함)

 

[MySQL]

- DATE_ADD(기준 날짜, INTERVAL n second | minute | hour | day | month 등)

> 기준 날짜에 해당 시간을 더해준다.

 

- DATE_SUB(기준 날짜, INTERVAL n second | minute | hour | day | month 등 )

>기준 날짜에 해당 시간을 뺀다.

 

- DATEDIFF(날짜1, 날짜2) 

> 날짜1과 날짜2의 일(Day) 차이

 

- TIMESTAMPDIFF( second | minute | hour | day | month  등, 날짜1, 날짜2)

> 날짜 1과 날짜2의 날짜 단위 차이

 

[관련해서 풀어본 문제(Leetcode)] https://leetcode.com/problems/rising-temperature/

-- ORACLE
-- Oracle은 날짜 차이를 구하는 함수가 별도로 없다고 한다.
SELECT a.id
FROM  weather a,weather b
WHERE 1=1
      and a.temperature > b.temperature 
      and a.recordDate - b.recordDate = 1
-- MySQL_DATE_SUB
SELECT ID
FROM Weather A
WHERE 1=1
      AND A.temperature > (select temperature
                         from weather
                         where recordDate = DATE_SUB(A.recordDate,INTERVAL 1 DAY))
--MySQL_DATEDIFF
SELECT a.id
FROM  weather a,weather b
WHERE 1=1
      and a.temperature > b.temperature 
      and DATEDIFF(a.recordDate,b.recordDate)=1