반응형
현재 날짜 / 시간
MySQL에는 현재 날짜 / 현재 시간을 알려주는 함수가 여러가지가 있습니다.
대표적으로 now()가 있지만 그 외에 어떤 것들이 있는지 알아보겠습니다.
now, sysdate, current_timestamp는 YYYY-MM-DD HH:mm:ss 형태로 리턴합니다.
curdate, current_date는 YYYY-MM-DD로 현재 날짜만 반환하고,
curtime, current_time은 HH:mm:ss 형태로 현재 시간만 반환합니다.
필요한 형태에 맞춰서 함수를 사용하면 됩니다.
날짜와 시간까지 필요한 경우에는 now, sysdate, current_timestamp를 사용하시고,
날짜만 필요할 땐 curdate, 시간만 필요할 땐 curtime을 사용하시면 되겠습니다.
// 2021-12-14 16:57:46
SELECT now();
SELECT sysdate();
SELECT current_timestamp();
// 2021-12-14
SELECT curdate();
SELECT current_date();
// 16:57:46
SELECT curtime();
SELECT current_time();
날짜 시간 더하기
날짜 시간 더하는 함수는 DATE_ADD, ADDDATE, ADDTIME 3가지가 있습니다.
주로 DATE_ADD를 가장 많이 사용하고
일단위로 계산은 ADDDATE, 초단위 계산은 ADDTIME을 사용할 수도 있습니다.
-- 원하는 단위만큼 더하기
DATE_ADD(date, INTERVAL value addunit)
ADDDATE(date, INTERVAL value addunit)
-- 일단위, 초단위
ADDDATE(date, adddays)
ADDTIME(date, addtime)
앞의 date는 기준시간, 뒤에는 더해질 시간입니다.
-- DATE_ADD
SELECT DATE_ADD(NOW(), INTERVAL 1 YEAR); -- '2022-12-15 11:20:33'
SELECT DATE_ADD(NOW(), INTERVAL 1 MONTH); -- '2022-01-15 11:20:33'
SELECT DATE_ADD(NOW(), INTERVAL 1 DAY); -- '2021-12-16 11:20:33'
SELECT DATE_ADD(NOW(), INTERVAL 1 HOUR); -- '2021-12-15 12:20:33'
SELECT DATE_ADD(NOW(), INTERVAL 1 MINUTE); -- '2021-12-15 11:21:33'
SELECT DATE_ADD(NOW(), INTERVAL 1 SECOND); -- '2021-12-15 11:20:34'
SELECT DATE_ADD(NOW(6), INTERVAL 1 MICROSECOND); -- '2021-12-15 11:20:33.268404'
-- ADDDATE
SELECT ADDDATE(NOW(), INTERVAL 1 YEAR); -- '2022-12-15 11:20:33'
SELECT ADDDATE(NOW(), INTERVAL 1 MONTH); -- '2022-01-15 11:20:33'
SELECT ADDDATE(NOW(), INTERVAL 1 DAY); -- '2021-12-16 11:20:33'
SELECT ADDDATE(NOW(), INTERVAL 1 HOUR); -- '2021-12-15 12:20:33'
SELECT ADDDATE(NOW(), INTERVAL 1 MINUTE); -- '2021-12-15 11:21:33'
SELECT ADDDATE(NOW(), INTERVAL 1 SECOND); -- '2021-12-15 11:20:34'
SELECT ADDDATE(NOW(6), INTERVAL 1 MICROSECOND); -- '2021-12-15 11:20:33.268404'
-- ADDDATE DAYS
SELECT ADDDATE(NOW(), 30); -- '2022-01-14 11:23:46'
-- ADDTIME
SELECT ADDTIME(NOW(), "10"); -- '2021-12-15 11:25:06'
SELECT ADDTIME(NOW(), "10 10:10:10"); -- '2021-12-25 21:35:06'
날짜 시간 빼기
날짜 시간 빼는 함수는 DATE_SUB, SUBDATE, SUBTIME 3가지가 있습니다.
주로 DATE_SUB를 가장 많이 사용하고
일단위로 계산은 SUBDATE, 초단위 계산은 SUBTIME을 사용할 수도 있습니다.
-- 원하는 단위만큼 빼기
DATE_SUB(date, INTERVAL value addunit)
SUBDATE(date, INTERVAL value addunit)
-- 일단위, 초단위
SUBDATE(date, adddays)
SUBTIME(date, addtime)
더하기랑 동일하게 앞의 date는 기준시간, 뒤에는 뺄 시간입니다.
-- DATE_SUB
SELECT DATE_SUB(NOW(), INTERVAL 1 YEAR); -- '2020-12-15 11:20:33'
SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH); -- '2021-11-15 11:20:33'
SELECT DATE_SUB(NOW(), INTERVAL 1 DAY); -- '2021-12-14 11:20:33'
SELECT DATE_SUB(NOW(), INTERVAL 1 HOUR); -- '2021-12-15 10:20:33'
SELECT DATE_SUB(NOW(), INTERVAL 1 MINUTE); -- '2021-12-15 11:19:33'
SELECT DATE_SUB(NOW(), INTERVAL 1 SECOND); -- '2021-12-15 11:20:32'
SELECT DATE_SUB(NOW(6), INTERVAL 1 MICROSECOND); -- '2021-12-15 11:20:33.268402'
-- SUBDATE
SELECT SUBDATE(NOW(), INTERVAL 1 YEAR); -- '2020-12-15 11:20:33'
SELECT SUBDATE(NOW(), INTERVAL 1 MONTH); -- '2021-11-15 11:20:33'
SELECT SUBDATE(NOW(), INTERVAL 1 DAY); -- '2021-12-14 11:20:33'
SELECT SUBDATE(NOW(), INTERVAL 1 HOUR); -- '2021-12-15 10:20:33'
SELECT SUBDATE(NOW(), INTERVAL 1 MINUTE); -- '2021-12-15 11:19:33'
SELECT SUBDATE(NOW(), INTERVAL 1 SECOND); -- '2021-12-15 11:20:32'
SELECT SUBDATE(NOW(6), INTERVAL 1 MICROSECOND); -- '2021-12-15 11:20:33.268402'
-- SUBDATE DAYS
SELECT SUBDATE(NOW(), 30); -- '2021-11-15 13:30:34'
-- SUBTIME
SELECT SUBTIME(NOW(), "10"); -- '2021-12-15 13:30:59'
SELECT SUBTIME(NOW(), "10 10:10:10"); -- '2021-12-05 03:21:11'
반응형