최근 AWS의 DB인 MySQL을 사용하고 있습니다.
주로 ORACLE만 사용하다 보니 오라클 문법이 너무 익숙하기도 하고, 처음 사용하는 MySQL DB이다 보니 자주 사용하는 날짜에 대한 처리방법조차도 잘 모르겠더군요.
그래서 오늘은 아주 자주 사용되는 날짜에 대한 처리 방법을 알아보겠습니다.
오늘?
먼저 "오늘" 일시를 나타내려면,
SELECT NOW();
를 사용하면 됩니다.
몇 시간 전 or 후?
시간을 빼거나 더하려면,
-- 1시간 빼기
SELECT DATE_SUB(NOW(), INTERVAL 1 HOUR);
-- 1시간 더하기
SELECT DATE_ADD(NOW(), INTERVAL 1 HOUR);
위와 같이 사용하면 되며, 실제 수행 결과는 아래와 같습니다.
오늘 2023년 11월 17일 08시 29분 11초를 기준으로
1시간 전인, 2023년 11월 17일 / 07시 29분 11초
1시간 후인, 2023년 11월 17일 / 09시 29분 11초
표기되는 것을 알 수 있습니다.
몇 분 전 or 후?
분을 빼거나 더하려면,
-- 30분 빼기
SELECT DATE_SUB(NOW(), INTERVAL 30 MINUTE);
-- 30분 더하기
SELECT DATE_ADD(NOW(), INTERVAL 30 MINUTE);
위와 같이 사용하면 되며, 실제 수행 결과는 아래와 같습니다.
오늘 2023년 11월 17일 08시 31분 07초를 기준으로
30분 전인, 2023년 11월 17일 / 08시 01분 07초
30분 후인, 2023년 11월 17일 / 09시 01분 07초
표기되는 것을 알 수 있습니다.
몇 일 전 or 후?
일자를 빼거나 더하려면,
-- 1일 빼기
SELECT DATE_SUB(NOW(), INTERVAL 1 DAY);
-- 1일 더하기
SELECT DATE_ADD(NOW(), INTERVAL 1 DAY);
위와 같이 사용하면 되며, 실제 수행 결과는 아래와 같습니다.
오늘 2023년 11월 17일을 기준으로
1일 전인, 2023년 11월 16일
1일 후인, 2023년 11월 18일
표기되는 것을 알 수 있습니다.
몇 개월 전 or 후?
월을 빼거나 더하려면,
-- 1개월 빼기
SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH);
-- 1개월 더하기
SELECT DATE_ADD(NOW(), INTERVAL 1 MONTH);
위와 같이 사용하면 되며, 실제 수행 결과는 아래와 같습니다.
오늘 2023년 11월 17일을 기준으로
1개월 전인, 2023년 10월 17일
1개월 후인, 2023년 12월 17일
표기되는 것을 알 수 있습니다.
몇 년 전 or 후?
년을 빼거나 더하려면,
-- 1년 빼기
SELECT DATE_SUB(NOW(), INTERVAL 1 YEAR);
-- 1년 더하기
SELECT DATE_ADD(NOW(), INTERVAL 1 YEAR);
위와 같이 사용하면 되며, 실제 수행 결과는 아래와 같습니다.
오늘 2023년 11월 17일을 기준으로
1년 전인, 2022년 11월 17일
1년 후인, 2024년 11월 17일
표기되는 것을 알 수 있습니다.
2월 29일, 366일 의 1년 후는?
1년이 366일인 년도가 있습니다. 바로 2024년이 그러한데요.
그러면 한가지 궁금해지는 부분이 있습니다.
바로, 2024년 2월 29일 1년 후의 날짜는 제대로 표기가 될까?
예상으론 1년을 더하면 2025년 2월 28일 나와야 합니다.
그 전에 해당 월의 마지막 날짜를 구하는 방법 을 먼저 알아보죠.
2024년 2월의 마지막 일자를 나타내려면 아래와 같이 써주면 됩니다.
select LAST_DAY('20240201');
그럼 2024년 2월 29일을 구했으니, 여기의 1년 뒤를 한번 출력해볼게요.
select LAST_DAY('20240201') AS STD_DATE,
DATE_ADD(LAST_DAY('20240201'), INTERVAL 1 YEAR) AS ADD_DATE
;
실제 수행결과 입니다.
2024년 2월의 마지막 일자인 STD_DATE가 2024-02-29로 정상적으로 출력되었고,
여기에 1년 뒤인 ADD_DATE는 예상했던 것과 같이 2025년 2월 28일이 정상적으로 출력되었습니다.
MySQL에서는 DATE_SUB / DATE_ADD를 통해
분, 시간, 일, 월, 년 등 다양하게 날짜를 활용 할 수 있습니다.
참고하셔서 많은 도움 되시기 바랄게요!
'IT' 카테고리의 다른 글
엑셀 파일의 중복 값 제거하는 방법 (소문자, 대문자 동일값 비교) (0) | 2024.06.14 |
---|---|
[HTML] HTML 특수 문자 코드표, CK에디터 getHTML관련 문제 해결 (0) | 2024.03.19 |
AWS MySQL DB 사용 시 DBeaver DBMS 툴 설치 및 접속 방법 (0) | 2023.11.13 |
일반 PC 노트북에서 삼성노트 설치 및 사용방법 (이 앱은 이장치와 호환되지 않습니다, 갤럭시탭S8+ 갤럭시S22 동기화) (0) | 2022.12.02 |
삼성 갤럭시탭S8 플러스 완벽 보호 케이스 제이로드 갤럭시 탭 S펜 수납케이스 (다크그린 색상, 테두리 보호, 쿠팡 로켓 배송, 전면 커버, 후면보호) (0) | 2022.11.17 |