1. 날짜 및 시간을 출력하는 기본적인 함수
SELECT NOW(), CURDATE(), SYSDATE();
2. 날짜 간격을 구하는 함수
SELECT DATEDIFF('2021-02-26','2020-08-21'), TIMESTAMPDIFF(SECOND, NOW(), '2020-12-25 00:00:00');
DateDiff() : 날짜간격을 일단위로 리턴
TimeStrampdiff () : 날짜간격을 초단위로 리턴
3. 각종 날짜관련 함수
SELECT YEAR(NOW()), MONTH(NOW()), DAY(NOW()), WEEKDAY(NOW()), DAYOFWEEK(NOW()), WEEK(NOW());
weekday() : 요일 (월:0)
dayofweek() : 요일 (일1..)
SQL 예제1. 직원이름, 입사일, 정규직 전환일을 출력하라 이때, 정규직 전환일은 입사후 3개월 이후이다.
SELECT ename, hiredate, DATE_ADD(hiredate, INTERVAL 3 MONTH) AS 정규직전환일 FROM emp;
4. 특정일자로부터 일정기간 전/후 구하기
SELECT NOW(), DATE_ADD(NOW(), INTERVAL 10 MONTH); # 현재로부터 10달뒤
SELECT NOW(), DATE_ADD(NOW(), INTERVAL 10 DAY); # 현재로부터 10일뒤
SELECT NOW(), DATE_ADD(NOW(), INTERVAL 10 HOUR); # 현재로부터 10시간뒤
SELECT NOW(), DATE_ADD(NOW(), INTERVAL 10 MINUTE);# 현재로부터 10분뒤
SELECT NOW(), DATE_ADD(NOW(), INTERVAL 10 SECOND);# 현재로부터 10초뒤
반대로 DATE_SUB()를 이용하거나 ADD함수에서 INTERVAL -10 이런식으로 음수를 사용하면된다.
5. 날짜 포맷
- str_to_date : 문자열를 날짜로 변환
SELECT '2020-08-21', STR_TO_DATE('2020-08-21', '%Y-%m-%d');
- date_format : 날짜를 문자열로 변환
SELECT NOW(),
DATE_FORMAT(NOW(), '%Y년 %m월 %d일'),
DATE_FORMAT(NOW(), '%Y년 %m월 %d일 %H %i %s'),
DATE_FORMAT(NOW(), '%Y년 %m월 %d일 %H %i %s, %p');
'DB + SQL' 카테고리의 다른 글
[SQL] - SQL IF문, 중첩 IF문, CASE 문 (0) | 2020.08.24 |
---|---|
[SQL] - SQL ifnull() 함수 (0) | 2020.08.24 |
[SQL] - SQL 문자열 위치 찾기 (find_in_set 함수) (0) | 2020.08.24 |
[SQL] - SQL 공백제거, 문자제거, 문자열 치환 (trim , replace 함수) (0) | 2020.08.21 |
[DB] - Maria DB 백업 및 복구 (0) | 2020.08.21 |