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

MySQL에서 INT를 DATETIME으로 변환하는 방법 (FROM_UNIXTIME 함수 활용)

MySQL에서 INT를 DATETIME으로 변환하는 방법

MySQL에서는 내장 함수인 FROM_UNIXTIME()을 사용하여 INT 타입의 유닉스 타임스탬프 값을 DATETIME 형식으로 간편하게 변환할 수 있습니다. 유닉스 타임스탬프란 1970년 1월 1일 00:00:00 UTC부터 경과한 초(second)를 나타내는 정수 값입니다.

기본 문법은 다음과 같습니다.

SELECT FROM_UNIXTIME(yourColumnName,'%Y-%m-%d') as AnyVariableName from
yourTableName;

1. 예제 테이블 생성

먼저 위 문법을 실습하기 위해 테이블을 생성하겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table IntToDateDemo
   -> (
   -> Number int
   -> );
Query OK, 0 rows affected (0.59 sec)

2. 데이터 삽입

INSERT 명령어를 사용하여 테이블에 유닉스 타임스탬프 형태의 샘플 데이터를 삽입합니다.

mysql> truncate table IntToDateDemo;
Query OK, 0 rows affected (4.11 sec)

mysql> insert into IntToDateDemo values(1545284721);
Query OK, 1 row affected (0.19 sec)

mysql> insert into IntToDateDemo values(1576820738);
Query OK, 1 row affected (0.19 sec)

mysql> insert into IntToDateDemo values(1513748752);
Query OK, 1 row affected (0.24 sec)

mysql> insert into IntToDateDemo values(1671515204);
Query OK, 1 row affected (0.18 sec)

3. 저장된 데이터 확인

SELECT 문을 사용하여 테이블에 저장된 모든 레코드를 조회합니다.

mysql> select *from IntToDateDemo;

출력 결과:

+------------+
| Number     |
+------------+
| 1545284721 |
| 1576820738 |
| 1513748752 |
| 1671515204 |
+------------+
4 rows in set (0.00 sec)

4. FROM_UNIXTIME()으로 날짜 변환하기

이제 FROM_UNIXTIME() 함수를 사용하여 INT 값을 'YYYY-MM-DD' 형식의 날짜로 변환해 보겠습니다.

mysql> select from_unixtime(Number,'%Y-%m-%d') as DateDemo from IntToDateDemo;

출력 결과:

+------------+
| DateDemo   |
+------------+
| 2018-12-20 |
| 2019-12-20 |
| 2017-12-20 |
| 2022-12-20 |
+------------+
4 rows in set (0.00 sec)

위 출력 결과에서 확인할 수 있듯이, 숫자로 저장된 유닉스 타임스탬프가 읽기 쉬운 날짜 형식으로 성공적으로 변환되었습니다.

참고: 시간 정보까지 함께 변환하기

날짜뿐만 아니라 시간 정보까지 함께 표시하고 싶다면 포맷 문자열을 '%Y-%m-%d %H:%i:%s'로 지정하면 됩니다.

mysql> select from_unixtime(Number,'%Y-%m-%d %H:%i:%s') as DateTimeDemo from IntToDateDemo;

또한 포맷 문자열을 생략하면 기본적으로 'YYYY-MM-DD HH:MM:SS' 형식의 전체 DATETIME 값이 반환됩니다.