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

MySQL에서 MM/DD/YY 형식 날짜를 Unix 타임스탬프로 변환하는 방법

MySQL에서 MM/DD/YY 형식으로 저장된 날짜 문자열을 Unix 타임스탬프로 변환하려면 STR_TO_DATE() 함수와 UNIX_TIMESTAMP() 함수를 함께 사용하면 됩니다. 기본 문법은 다음과 같습니다.

SELECT UNIX_TIMESTAMP(STR_TO_DATE(yourColumnName, '%m/%d/%Y')) FROM yourTableName;

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 생성합니다.

mysql> CREATE TABLE DemoTable
    (
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    dateConvertToUnix varchar(100)
    );
Query OK, 0 rows affected (0.58 sec)

2. 샘플 데이터 삽입하기

INSERT 문을 사용해 MM/DD/YYYY 형식의 날짜 데이터를 몇 개 입력합니다.

mysql> INSERT INTO DemoTable(dateConvertToUnix) VALUES('01/10/2001');
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable(dateConvertToUnix) VALUES('03/31/2010');
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable(dateConvertToUnix) VALUES('12/31/2016');
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable(dateConvertToUnix) VALUES('04/27/2019');
Query OK, 1 row affected (0.10 sec)

3. 저장된 데이터 확인하기

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

mysql> SELECT * FROM DemoTable;

위 쿼리는 다음과 같은 결과를 출력합니다.

+----+-------------------+
| Id | dateConvertToUnix |
+----+-------------------+
| 1  | 01/10/2001        |
| 2  | 03/31/2010        |
| 3  | 12/31/2016        |
| 4  | 04/27/2019        |
+----+-------------------+
4 rows in set (0.00 sec)

4. Unix 타임스탬프로 변환하기

이제 UNIX_TIMESTAMP()STR_TO_DATE()를 조합하여 날짜 문자열을 Unix 타임스탬프로 변환합니다. 여기서 %m/%d/%Y는 '월/일/년' 형식을 의미하는 포맷 지정자입니다.

mysql> SELECT UNIX_TIMESTAMP(STR_TO_DATE(dateConvertToUnix, '%m/%d/%Y')) FROM DemoTable;

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

+------------------------------------------------------------+
| UNIX_TIMESTAMP(STR_TO_DATE(dateConvertToUnix, '%m/%d/%Y')) |
+------------------------------------------------------------+
|                                                 979065000  |
|                                                1269973800  |
|                                                1483122600  |
|                                                1556303400  |
+------------------------------------------------------------+
4 rows in set (0.00 sec)

참고 사항

STR_TO_DATE()는 문자열을 MySQL의 DATETIME 값으로 해석하고, UNIX_TIMESTAMP()는 해당 시각을 1970년 1월 1일 00:00:00 UTC 이후 경과한 초 단위 정수로 반환합니다. 만약 시간 정보까지 포함된 형식이라면 포맷 지정자에 %H:%i:%s 등을 추가로 지정하면 됩니다. 또한 결과값의 정확성은 서버의 타임존(time_zone) 설정에 영향을 받으므로, 필요에 따라 CONVERT_TZ()를 활용하는 것도 좋습니다.