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(2018, 10); -- 2018-01-10 |
cs |
MAKETIME(시, 분, 초)
시, 분, 초를 TIME으로 만들어 반환합니다.
1 |
SELECT MAKETIME(12, 10, 30); -- 12:10:30 |
cs |
PERIOD_ADD(YYYYMM, 개월 수), PERIOD_DIFF(YYYYMM, YYYYMM)
PERIOD_ADD()는 연월에서 개월 수 만큼의 지는 연월을 구합니다.
PERIOD_DIFF는 첫 번째 연월 - 두 번째 연월 을 계산한 개월 수를 구합니다.
1
2 |
SELECT PERIOD_ADD(201701, 12); -- 201801
SELECT PERIOD_DIFF(201701, 201801); -- -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 |
추가 함수 정보
'데이터베이스[DB]' 카테고리의 다른 글
[ORACLE] ORA-00911 문자가 부적합 합니다 오류 발생시 해결 방법 (0) | 2018.03.21 |
---|---|
[MySQL] 시스템 함수 (0) | 2018.03.21 |
[MySQL] MySQL 숫자 및 수학 함수 (0) | 2018.03.21 |
[MySQL] MySQL 문자열 함수 [3] (0) | 2018.03.20 |
[MySQL] MySQL 문자열 함수 [2] (0) | 2018.03.20 |