[테스트 환경]
- Linux CentOs7
- MariaDB 10.1.12
1. TIMEIDFF,TIME_FORMAT 함수
- TIMEDIFF : 두 개의 시간 값의 차를 계산하여 년월일시분초로 값을 리턴해 주는 함수
- TIME_FORMAT : 시간 값을 원하는 유형으로 포맷을 변경해주는 함수
2. 실습 예제
- 로그인하여 접속을 유지한 시간의 값을 알고 싶을 때 위의 두개의 함수를 사용하여 값을 출력 한다.
/*로그인_로그아웃 테이블 생성 */ CREATE TABLE DA_LOGIN_LOGOUT_TB ( LOGIN_LOGOUT_SEQ_NO int(9) NULL , DA_LOGIN_DATE datetime NULL, DA_LOGOUT_DATE datetime NULL, DA_DATE_UNIT varchar(10) NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ; /*날짜 데이터 추가*/ INSERT INTO DA_LOGIN_LOGOUT_TB(LOGIN_LOGOUT_SEQ_NO,DA_LOGIN_DATE,DA_LOGOUT_DATE,DA_DATE_UNIT) VALUES(1,NOW(),DATE_ADD(NOW(),INTERVAL +1 DAY),'DAY' ); INSERT INTO DA_LOGIN_LOGOUT_TB(LOGIN_LOGOUT_SEQ_NO,DA_LOGIN_DATE,DA_LOGOUT_DATE,DA_DATE_UNIT) VALUES(2,NOW(),DATE_ADD(NOW(),INTERVAL +1 MONTH),'MONTH' ); INSERT INTO DA_LOGIN_LOGOUT_TB(LOGIN_LOGOUT_SEQ_NO,DA_LOGIN_DATE,DA_LOGOUT_DATE,DA_DATE_UNIT) VALUES(3,NOW(),DATE_ADD(NOW(),INTERVAL +1 HOUR),'HOUR' ); /*로그인 유지 시간 조회 쿼리 작성*/ SELECT A.LOGIN_LOGOUT_SEQ_NO, A.DA_LOGIN_DATE, /*로그인시간*/ A.DA_LOGOUT_DATE, /*로그아웃시간*/ TIMEDIFF(A.DA_LOGOUT_DATE,A.DA_LOGIN_DATE) AS LOGOUT_MAINTAIN, /*로그인 유지시간*/ TIME_FORMAT(TIMEDIFF(A.DA_LOGOUT_DATE,A.DA_LOGIN_DATE),'%H%i%s') AS LOGOUT_MAINTAIN, /*로그인 유지시간*/ TIME_FORMAT(TIMEDIFF(A.DA_LOGOUT_DATE,A.DA_LOGIN_DATE),'%H시%i분%s초') AS LOGOUT_MAINTAIN, /*로그인 유지시간*/ TIME_FORMAT(TIMEDIFF(STR_TO_DATE('20170217170230','%Y%m%d%H%i%s'),A.DA_LOGIN_DATE),'%H%i%s') AS LOGOUT_MAINTAIN_HHMMSS, /*장비 로그인 유지 시분초*/ A.DA_DATE_UNIT FROM DA_LOGIN_LOGOUT_TB A;
3. 결과 데이터
- 아래 결과와 같이 두 개의 함수를 사용하여 다양한 형태로 결과 데이터를 출력 할 수 있다.
'MariaDB > SQL' 카테고리의 다른 글
[에러] Incorrect datetime value: '' (0) | 2017.08.02 |
---|---|
Foreign Key 생성 시 Index 생성 (0) | 2017.06.02 |
[MariaDB][SQL]사용자변수를 활용한 DENSE_RANK 분석함수 작성 (0) | 2017.03.09 |