[테스트 환경]
- 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 |