Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

두 타임 스탬프의 MySQL 차이는 초 단위입니까?

<시간/>

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초가 됩니다.