Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 타임스탬프를 UNIX 타임스탬프로 변환하는 방법 완벽 가이드

MySQL 타임스탬프를 UNIX 타임스탬프로 변환하기

MySQL에서 날짜·시간 형태의 타임스탬프를 UNIX 타임스탬프(에포크 이후 경과 초 단위의 정수 값)로 변환하려면 UNIX_TIMESTAMP() 함수를 사용하면 됩니다. 이 함수는 DATETIME 또는 TIMESTAMP 값을 1970년 1월 1일 00:00:00 UTC 기준으로부터 경과한 초(second)로 반환해 줍니다.

기본 문법

SELECT unix_timestamp(yourColumnName) FROM yourTableName;

이제 실제 예제를 통해 변환 과정을 단계별로 살펴보겠습니다.

1단계: 테이블 생성

먼저 TIMESTAMP 타입의 컬럼을 가진 테이블을 생성합니다.

mysql> create table DemoTable(
    Duetimestamp timestamp
);
Query OK, 0 rows affected (2.66 sec)

2단계: 데이터 삽입

INSERT 명령을 사용해 몇 개의 레코드를 추가합니다. now() 함수로 현재 시간을 넣을 수도 있고, 특정 날짜를 직접 지정할 수도 있습니다.

mysql> insert into DemoTable values(now());
Query OK, 1 row affected (1.53 sec)
mysql> insert into DemoTable values('2016-01-21 12:34:00');
Query OK, 1 row affected (0.73 sec)
mysql> insert into DemoTable values('2018-05-01 02:00:00');
Query OK, 1 row affected (0.42 sec)
mysql> insert into DemoTable values('2017-03-02 01:10:20');
Query OK, 1 row affected (10.19 sec)

3단계: 저장된 데이터 확인

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다.

+---------------------+
| Duetimestamp        |
+---------------------+
| 2019-08-20 20:48:45 |
| 2016-01-21 12:34:00 |
| 2018-05-01 02:00:00 |
| 2017-03-02 01:10:20 |
+---------------------+
4 rows in set (0.00 sec)

4단계: UNIX_TIMESTAMP()로 변환

이제 MySQL 타임스탬프를 UNIX 타임스탬프로 변환하는 쿼리입니다.

mysql> select unix_timestamp(Duetimestamp) from DemoTable;

변환 결과는 다음과 같습니다.

+------------------------------+
| unix_timestamp(Duetimestamp) |
+------------------------------+
| 1566314325                   |
| 1453359840                   |
| 1525120200                   |
| 1488397220                   |
+------------------------------+
4 rows in set (0.04 sec)

참고 사항

UNIX_TIMESTAMP() 함수는 인자 없이 호출하면 현재 시각의 UNIX 타임스탬프를 반환하고, 날짜 문자열이나 DATE/DATETIME 컬럼을 인자로 전달하면 해당 시점의 UNIX 타임스탬프를 반환합니다. 반대로 UNIX 타임스탬프를 다시 날짜 형식으로 변환할 때는 FROM_UNIXTIME() 함수를 사용하면 됩니다. 이 두 함수를 함께 활용하면 MySQL에서 날짜 데이터를 자유롭게 변환할 수 있습니다.