#83. [LeetCode / MySQL] 197. Rising Temperature

문제

 

입력 코드

1.

SELECT w1.id
FROM Weather w1, Weather w2
WHERE DATEDIFF(w1.recordDate, w2.recordDate) = 1 
    AND w1.temperature > w2.temperature;

 

2. 

SELECT w1.id
FROM Weather w1
JOIN Weather w2 
    ON w1.recordDate = DATE_ADD(w2.recordDate, INTERVAL 1 DAY)
WHERE w1.temperature > w2.temperature

 

 

DATE_ADD(기준 날짜, INTERVAL) 함수

  • 기준 날짜에 입력된 기간만큼 더하는 함수
SELECT DATE_ADD(NOW(), INTERVAL 1 SECOND);  # 1초 더하기
SELECT DATE_ADD(NOW(), INTERVAL 1 MINUTE);  # 1분 더하기
SELECT DATE_ADD(NOW(), INTERVAL 1 HOUR);    # 1시간 더하기
SELECT DATE_ADD(NOW(), INTERVAL 1 DAY);     # 1일 더하기
SELECT DATE_ADD(NOW(), INTERVAL 1 MONTH);   # 1달 더하기
SELECT DATE_ADD(NOW(), INTERVAL 1 YEAR);    # 1년 더하기

 

 

DATE_SUB(기준 날짜, INTERVAL) 함수

  • 기준 날짜에 입력된 기간만큼 뺴는 함수
SELECT DATE_SUB(NOW(), INTERVAL 1 SECOND);  # 1초 빼기
SELECT DATE_SUB(NOW(), INTERVAL 1 MINUTE);  # 1분 빼기
SELECT DATE_SUB(NOW(), INTERVAL 1 HOUR);    # 1시간 빼기
SELECT DATE_SUB(NOW(), INTERVAL 1 DAY);     # 1일 빼기
SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH);   # 1달 빼기
SELECT DATE_SUB(NOW(), INTERVAL 1 YEAR);    # 1년 빼기

 

 

코드 설명

#SELECT #DATEDIFF #DATE_ADD #JOIN #INTERVAL

 

 

문제 출처

 

Rising Temperature - LeetCode

Can you solve this real interview question? Rising Temperature - Table: Weather +---------------+---------+ | Column Name | Type | +---------------+---------+ | id | int | | recordDate | date | | temperature | int | +---------------+---------+ In SQL, id i

leetcode.com