반갑습니다!
날짜 타입 다루기를 계속 진행하고 있습니다 ^^
이번 포스트에서는 날짜끼리 연산을 한 번 해보겠습니다
현재 날짜를 기준으로
일정 기간을 더하거나 빼는 기본적인 연산들입니다 ^^
1. 두 날짜의 차이 : datediff() 함수
SELECT datediff(now(), birthdt) AS datediff FROM people;
현재 날짜를 now()로 조회하여 기준으로 삼고,
datediff() 함수를 이용해서 각각 birthdt 컬럼의 값과
어느만큼의 차이가 있는지 연산하였습니다 ^^
결과값으로 나온 값들은 INT형 데이터로서,
해당 일자와 차이만큼의 일 수(days)를 의미합니다!
2. 기준 날짜에 특정 기간 더하기 : date_add() 함수
SELECT birthdt, date_add(birthdt, interval 100 day) FROM people;
이번에는 birthdt 컬럼의 값을 기준으로 100일만큼을 더했습니다 ^^
해당 기간을 더하기 위해 파라미터에 값을 넣을 때 interval을 붙여주시면 되겠습니다!
3. 기준 날짜에 특정 기간 빼기 : date_sub() 함수
SELECT name, birthdt, date_sub(birthdt, interval 100 day) AS "date_sub" FROM people;
이번에도 마찬가지입니다!
기준이 되는 날짜로부터 해당 기간을 빼고자 할 때
interval을 붙여서 파라미터로 넣어주시면 되겠습니다 ^^
다양한 날짜 계산을 위해서,
몇 가지 예시를 한 번 들어보겠습니다 ^^
ex 1.
SELECT name, birthdt, date_add(birthdt, interval 5 week) AS "date_add" FROM people;
date_add() 함수를 이용해서,
birthdt 컬럼의 값을 기준으로
5주 후의 날짜가 어떻게 되는지 연산을 한 결과입니다 ^^
ex 2.
SELECT name, birthdt, date_sub(birthdt, interval 10 week) AS "date_sub" FROM people;
date_sub() 함수를 이용해서,
birthdt 컬럼의 값을 기준으로
10주 전의 날짜가 어떻게 되는지 연산을 한 결과입니다 ^^
ex 3.
SELECT birthdt, date_add(birthdt, interval 72 hour) as "date_add" FROM people;
date_add() 함수를 이용해서,
birthdt 컬럼의 값을 기준으로
72시간 후의 날짜가 어떻게 되는지 연산을 한 결과입니다 ^^
이 연산은 아래의 방법으로도 같은 결과를 도출해낼 수 있습니다!
SELECT birthdt, birthdt + interval 72 hour as "date_add" FROM people;
굳이 date_add() 또는 date_sub() 함수를 사용하지 않더라도
+, - 기호를 이용해서 날짜에 대한 덧셈, 뺄셈 연산이 가능합니다 ^^
ex 4.
SELECT birthdt, birthdt + interval 2 year + interval 27 hour - interval 29 minute AS results FROM people;
+, - 기호를 이용한 연산을 사용하여서
태어난 시간으로부터 2년 27시간 후에서 29분 전의 날짜를 계산하였습니다 ^^
조금 복잡해보일 수 있지만 길이만 길 뿐
상기 SQL문과 같이, 단순하게 더해주고 빼주는 연산입니다
이번 포스트에서는 datetime 타입의 컬럼인 birthdt에 대해서
해당 기간을 더하고 빼는 함수들을 살펴보았습니다 ^^