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

UNIX 타임스탬프와 MySQL 타임스탬프의 차이점 완벽 정리

UNIX 타임스탬프와 MySQL 타임스탬프란?

MySQL에서 UNIX 타임스탬프(UNIX TIMESTAMP)는 32비트 정수 형태로 저장됩니다. 반면 MySQL 타임스탬프(MySQL TIMESTAMP) 역시 내부적으로는 비슷한 방식으로 저장되지만, 사람이 읽기 쉬운 YYYY-MM-DD HH:MM:SS 형식으로 표현된다는 점이 가장 큰 차이입니다.

즉, 두 타임스탬프 모두 날짜와 시간 정보를 담고 있지만, 하나는 숫자 값으로, 다른 하나는 날짜 문자열 형태로 다뤄진다고 이해하면 됩니다.

UNIX_TIMESTAMP() 함수 예제

날짜 값을 UNIX 타임스탬프(정수)로 변환하려면 UNIX_TIMESTAMP() 함수를 사용합니다.

mysql> Select UNIX_TIMESTAMP('2017-09-25 02:05:45') AS 'UNIXTIMESTAMP VALUE';
+---------------------+
| UNIXTIMESTAMP VALUE |
+---------------------+
| 1506285345 |
+---------------------+
1 row in set (0.00 sec)

위 쿼리 결과에서 확인할 수 있듯이, UNIX 타임스탬프 값은 32비트 정수로 저장되며, 그 표현 범위는 MySQL INTEGER 데이터 타입의 범위와 동일합니다.

FROM_UNIXTIME() 함수 예제

반대로 UNIX 타임스탬프를 사람이 읽을 수 있는 날짜 형식으로 변환하려면 FROM_UNIXTIME() 함수를 사용합니다.

mysql> Select FROM_UNIXTIME(1506283345) AS 'MySQLTIMESTAMP VALUE';
+----------------------+
| MySQLTIMESTAMP VALUE |
+----------------------+
| 2017-09-25 01:32:25 |
+----------------------+
1 row in set (0.00 sec)

위 쿼리는 MySQL 타임스탬프 값 또한 내부적으로 32비트 정수로 저장되지만, 읽기 쉬운 날짜·시간 형식으로 출력되며, 그 범위는 MySQL TIMESTAMP 데이터 타입의 범위('1970-01-01 00:00:01' UTC ~ '2038-01-19 03:14:07' UTC)와 같다는 것을 보여줍니다.

두 타임스탬프 비교 요약

구분UNIX 타임스탬프MySQL 타임스탬프
저장 방식32비트 정수32비트 정수 기반
표현 형식숫자 (예: 1506285345)YYYY-MM-DD HH:MM:SS
가독성사람이 직접 읽기 어려움사람이 읽기 쉬움
주요 변환 함수UNIX_TIMESTAMP()FROM_UNIXTIME()

정리하자면, UNIX 타임스탬프는 시간을 단일 정수 값으로 표현하여 연산이나 비교에 유리하고, MySQL 타임스탬프는 가독성이 뛰어나 화면 출력이나 로그 기록에 적합합니다. 상황에 맞게 UNIX_TIMESTAMP()FROM_UNIXTIME() 함수를 활용해 두 형식을 자유롭게 변환하며 사용할 수 있습니다.