MySQL의 내장 함수 UNIX_TIMESTAMP()를 사용하여 타임스탬프와 두 타임스탬프 간의 차이를 얻을 수 있습니다. 구문은 다음과 같습니다 -
SELECT UNIX_TIMESTAMP(yourColumnName1) - UNIX_TIMESTAMP(yourColumnName2) as anyVariableName from yourTableName;
위의 개념을 이해하기 위해 테이블을 만들어 보겠습니다. 다음은 테이블을 생성하는 쿼리입니다 -
mysql> create table DifferenceInSeconds −> ( −> FirstTimestamp TIMESTAMP, −> SecondTimestamp TIMESTAMP −> ); Query OK, 0 rows affected (0.93 sec)
삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다 -
mysql> insert into DifferenceInSeconds values('2012-12-12 13:16:55','2012-12-12 13:13:55'); Query OK, 1 row affected (0.31 sec) mysql> insert into DifferenceInSeconds values('2014-10-11 12:15:50','2014-10-11 12:13:50'); Query OK, 1 row affected (0.19 sec) mysql> insert into DifferenceInSeconds values('2018-12-14 13:30:53','2018-12-14 13:27:53'); Query OK, 1 row affected (0.21 sec)
이제 select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -
mysql> select *from DifferenceInSeconds;선택
다음은 출력입니다 -
+---------------------+---------------------+ | FirstTimestamp | SecondTimestamp | +---------------------+---------------------+ | 2012-12-12 13:16:55 | 2012-12-12 13:13:55 | | 2014-10-11 12:15:50 | 2014-10-11 12:13:50 | | 2018-12-14 13:30:53 | 2018-12-14 13:27:53 | +---------------------+---------------------+ 3 rows in set (0.00 sec)
다음은 두 타임스탬프의 차이를 초 단위로 찾는 쿼리입니다. 쿼리는 다음과 같습니다 -
mysql> SELECT UNIX_TIMESTAMP(FirstTimestamp) - UNIX_TIMESTAMP(SecondTimestamp) as Seconds from DifferenceInSeconds;
다음은 출력입니다 -
+---------+ | Seconds | +---------+ | 180 | | 120 | | 180 | +---------+ 3 rows in set (0.00 sec)
참고 - 어느 타임스탬프가 더 큰지 모른다면 ABS()를 사용하십시오.
구문은 다음과 같습니다 -
SELECT ABS(UNIX_TIMESTAMP(yourColumnName1) - UNIX_TIMESTAMP(yourColumnName2)) as Seconds from DifferenceInSeconds;
위의 구문을 확인하기 위해 첫 번째 타임스탬프의 값이 낮은 레코드를 삽입해 보겠습니다.
mysql> insert into DifferenceInSeconds values('2018-12-14 13:26:53','2018-12-14 13:31:53'); Query OK, 1 row affected (0.21 sec)
테이블의 모든 레코드를 표시하는 쿼리입니다.
mysql> select *from DifferenceInSeconds;선택
다음은 출력입니다 -
+---------------------+---------------------+ | FirstTimestamp | SecondTimestamp | +---------------------+---------------------+ | 2012-12-12 13:16:55 | 2012-12-12 13:13:55 | | 2014-10-11 12:15:50 | 2014-10-11 12:13:50 | | 2018-12-14 13:30:53 | 2018-12-14 13:27:53 | | 2018-12-14 13:26:53 | 2018-12-14 13:31:53 | +---------------------+---------------------+ 4 rows in set (0.00 sec)
다음은 ABS() 함수의 사용입니다. 쿼리는 다음과 같습니다 -
mysql> SELECT ABS(UNIX_TIMESTAMP(FirstTimestamp) - UNIX_TIMESTAMP(SecondTimestamp)) as Seconds from DifferenceInSeconds;
다음은 출력입니다 -
+---------+ | Seconds | +---------+ | 180 | | 120 | | 180 | | 300 | +---------+ 4 rows in set (0.00 sec)
참고 - ABS()를 사용하지 않을 경우 위의 출력은 -300초가 됩니다.