ADDTIME(날짜/시간, 더할 시간), SUBTIME(날짜/시간, 뺄 시간)
날짜/시간에 더할 시간만큼 더하거나, 뺄 시간 만큼 빼서 반환합니다.
1
2
SELECT ADDTIME('2018-03-20 10:30:20''1:10:10');; -- 1시간 10분 10초 더함 >> 2018-03-20 11:40:30 
SELECT SUBTIME('2018-03-20 10:30:20''1:10:10'); -- 1시간 10분 10초 뺌 >> 2018-03-20 09:20:10
cs



ADDDATE(날짜/시간, 더할 날짜), SUBDATE(날짜/시간, 뺄 날짜)
날짜/시간에 날짜를 더하거나, 빼서 반환합니다.
1
2
SELECT ADDDATE('2018-03-20 10:30:20', INTERVAL 30 DAY); -- 2018-04-19 10:30:20 
SELECT SUBDATE('2018-03-20 10:30:20', INTERVAL 30 DAY); -- 2018-02-18 10:30:20 
cs



CURDATE(), CURTIME(), NOW(), SYSDATE()
1
2
3
4
SELECT CURDATE(); -- 현재 연도-월-일 반환 >> 2018-03-21
SELECT CURTIME(); -- 현재 시:분:초 반환 >> 12:32:04
SELECT NOW(); --현재 날짜 및 시간을 반환 >> 2018-03-21 12:32:04
SELECT SYSDATE(); -- 현재 날짜 및 시간을 반환 >> 2018-03-21 12:32:04
cs




YEAR(날짜), MONTH(날짜), DAY(날짜), HOUR(시간), MINUTE(시간), SECOND(시간), MICROSECOND(시간)
매개변수로 준 날짜, 시간에서 연, 월, 일, 시, 분, 초, 마이크로세컨트(1/1000000) 를 추출합니다.
1
2
3
4
5
6
7
8
9
SELECT NOW();            -- 2018-03-21 00:48:30
SELECT YEAR(NOW());    -- 2018
SELECT MONTH(NOW()); -- 3
SELECT DAY(NOW());      -- 21
SELECT CURTIME();         -- 00:49:13
SELECT HOUR(CURTIME()); -- 0
SELECT MINUTE(CURTIME()); -- 49
SELECT SECOND(CURTIME()); -- 13
SELECT MICROSECOND('13:15:30.0003'); -- 300
cs




DATE(날짜/시간), TIME(날짜/시간) 
날짜/시간에서 날짜, 또는 시간만을 추출하여 반환합니다.
1
2
SELECT DATE('2018-03-21 00:53:46'); -- 2018-03-21
SELECT TIME('2018-03-21 00:53:46'); -- 00:53:46
cs



TDATEDIFF(날짜1, 날짜2), TIMEDIFF(날짜1 또는 시간1, 날짜2 또는 시간2) 
날짜2를 기준으로 날짜1의 차이를 구합니다.
1
2
SELECT DATEDIFF('2018-01-01 00:00:00''2018-01-06 00:00:00'); -- 날짜2를 기준으로 날짜1은 -4이므로 -4 반환
SELECT TIMEDIFF('2018-01-01 00:00:00''2018-01-02 00:00:00'); -- 날짜/시간2를 기준으로 날짜/시간1은 하루 전이므로 -24 반환
cs



DAYOFWEEK(날짜), MONTHNAME() , DAYOFYEAR(날짜)
요일을 정수로 반환합니다. (일요일 -> 1, 월요일 -> 2, 수요일 -> 4)
해당 월의 영문명을 반환합니다.
1년 중 몇 번째 날짜인지 구합니다.
1
2
3
SELECT DAYOFWEEK('2018-01-01'); -- 1월1일은 월요일 --> 2 반환
SELECT MONTHNAME('2018-01-01'); -- January
SELECT DAYOFYEAR('2018-02-01'); -- 2월 1일은 2018년도의 32일째 날이므로 32 반환
cs



LAST_DAY(날짜)
주어진 달의 마지막 날짜를 구합니다.
1
SELECT LAST_DAY('2018-01-01'); -- 2018-01-31
cs



MAKEDATE(연도, 숫자)
그해 연도가 시작된 1월 1일을 기준으로 숫자 만큼 지난 날의 날짜를 구합니다.
1
SELECT MAKEDATE(201810); -- 2018-01-10
cs



MAKETIME(시, 분, 초)
시, 분, 초를 TIME으로 만들어 반환합니다.
1
SELECT MAKETIME(121030); -- 12:10:30
cs




PERIOD_ADD(YYYYMM, 개월 수), PERIOD_DIFF(YYYYMM, YYYYMM)
PERIOD_ADD()는 연월에서 개월 수 만큼의 지는 연월을 구합니다.
PERIOD_DIFF는 첫 번째 연월 - 두 번째 연월 을 계산한 개월 수를 구합니다.
1
2
SELECT PERIOD_ADD(20170112); -- 201801
SELECT PERIOD_DIFF(201701201801); -- -12
cs



QUARTER(날짜)
연도를 4분기로 나누었을 때 날짜가 몇 분기인지를 구합니다.
1
SELECT QUARTER('2018-04-01'); -- 2
cs


TIME_TO_SEC(시간)
00:00:00을 기준으로 흐른 시간을 초 단위로 바꿔 반환합니다.
1
SELECT TIME_TO_SEC('01:10:30'); -- 3600 + 600 + 30 >> 4230
cs




추가 함수 정보

블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

,